Vikas Hire Ответов: 5

Как вызвать java scrip при нажатии кнопки


Здравствуйте, у меня есть функция java script, но я не могу вызвать ее при нажатии кнопки,

Вот мой код

Скрипт
<script type="text/javascript">
              function toggleVisibility() 
              {
                  var control = document.getElementById("FileUpload1");
                  
                  if (control.style.visibility == "visible" || control.style.visibility == "")
                      control.style.visibility = "hidden";
                  else
                      control.style.visibility = "visible";
                  return;
              }
      </script>


И Asp.Net код как...

<asp:Button ID="ChangePic" runat="server" Text="Change Pic" OnClientClick="toggleVisibility()" />
                       <asp:FileUpload ID="FileUpload1" Visible="false" runat="server" />


Что я уже пробовал:

Я пытаюсь контролировать видимость true или false с помощью java-скрипта.
Я использую java script, потому что хочу запустить свой код на стороне клиента, не отправляя его обратно на сервер..

5 Ответов

Рейтинг:
2

Shambhoo kumar

Привет, Викас, используй код ниже. надеюсь, это будет полезно для вас.

function myFunction() {
    var x = document.getElementById('IdofParticularControl');
    if (x.style.visibility === 'hidden') {
        x.style.visibility = 'visible';
    } else {
        x.style.visibility = 'hidden';
    }
}


<button onclick="myFunction()">Click me</button>


Vikas Hire

не работать.. :(

Shambhoo kumar

проверьте решение еще раз. Этот код правильный, вы не можете вызвать его правильно.

Vikas Hire

ОК

Vikas Hire

можете ли вы сказать мне, где должно быть правильное место для размещения java-скрипта в моем коде

Shambhoo kumar

лучше написать этот код в отдельном файле.

Vikas Hire

но это всего лишь несколько строк кода..

Рейтинг:
2

itisha-systematix

Привет Викас вы можете позвонить ему с помощью jquery
$("#ChangePic"). click (функция(){

var control = document. getElementById ("FileUpload1");

если (элемент.стиль.видимость == "видимый" || контроль.стиль.видимость == "")
контроль.стиль.видимость = "скрытое";
ещё
контроль.стиль.видимость = "видна";
вернуть;
});

нет нет необходимости писать этот код ниже

OnClientClick= " toggleVisibility()"


Рейтинг:
2

Vikas Hire

Я получаю изменения в соответствии с предоставленным контекстом ссылки.. но все равно мой код не работает

$*Developer - Vaibhav*$

поделитесь своим кодом (полная страница) или просто напишите alert () Для тестирования

функция toggleVisibility()
{
alert ("Привет");
}

$*Developer - Vaibhav*$

Пожалуйста, проверьте, не поставили ли вы тег скрипта


<сценарий тип="текст/JavaScript" языка="JavaScript"; другими&ГТ;

функция myFunction() {
var x = document. getElementById ('IdofParticularControl');
если (Х.стиль.видимость = = = "скрытый") {
x. style. visibility = 'видимый';
} еще {
х.стиль.видимость = "скрытый";
}
}

Рейтинг:
2

Hrishikesh

вместо того, чтобы попробовать на jQuery

$("#ChangePic"). click (функция(){
переключаемость();
});


Рейтинг:
15

Peter Leow

Запустите страницу в вашем браузере, щелкните правой кнопкой мыши и просмотрите источник страницы, можете ли вы найти элемент управления FileUpload1?
1. Поскольку вы указали Visible= "false" для элемента управления FileUpload, он вообще никогда не будет отображаться на вашей HTML-странице, поэтому вы никогда не сможете получить к нему доступ через клиентский скрипт. Если вы хотите скрыть его при загрузке страницы и иметь возможность переключать его с помощью скрипта, не используйте свойство Visible="false", вместо этого вы должны сделать это на стороне клиента, либо установив CSS-свойство display в none, либо используя JavaScript, чтобы скрыть его.

var control = document.getElementById("FileUpload1");
control.style.visibility = "hidden"; // to hide
// or
control.style.display = "none"; // to hide
// to show
control.style.display = "";

2. установив его сразу после 1, Запустите его и снова просмотрите исходный код страницы, можете ли вы найти id= "FileUpload1", может быть, нет, вместо этого вы можете увидеть что-то похожее
id="MainContent_FileUpload1"
Да, имя может быть префиксировано какой-то другой строкой, чтобы сделать его уникальным, чтобы получить фактический идентификатор, вы должны использовать:
var control = document.getElementById("<%= FileUpload1.ClientID %>");

3. Наконец, все ваши элементы управления будут находиться внутри формы, и поведение по умолчанию любой формы отправки заключается в отправке данных на сервер. Ваш JavaScript-код будет переключать элемент управления при каждом нажатии кнопки, но он всегда будет обновляться до скрытого состояния по умолчанию в результате отправки формы. Решение состоит в том, чтобы отменить этот багавиор по умолчанию. Решение? Установите его так, чтобы он возвращал false в вашей функции JavaScript, и добавьте возврат к атрибуту onClientClick.
Чтобы завершить его, готовый код будет выглядеть следующим образом:

<div>
    <asp:Button ID="ChangePic" runat="server" Text="Change Pic" onClientClick="return toggleVisibility()" />
    <asp:FileUpload ID="FileUpload1" runat="server" />
</div>

<script>
    var control = document.getElementById("<%= FileUpload1.ClientID %>");
    control.style.visibility = "hidden";
    function toggleVisibility()
    {
        if (control.style.visibility == "visible")
            control.style.visibility = "hidden";
        else
            control.style.visibility = "visible";
        return false;
    }
</script>