C # Как включить кнопку ontextchange без отправки назад - PullRequest
0 голосов
/ 22 марта 2011

, поэтому у меня есть лайтбокс, в котором всплывает страница aspx с текстовыми полями и двумя кнопками (отправить - отключен и отменить - включен).Я хотел включить мою кнопку отправки ontextchange.он работает нормально, когда открывается отдельно (не как лайтбокс), но когда я позволяю ему работать нормально с функцией лайтбокса каждый раз, когда запускается ontextchange, вся страница обновляется, отключая лайтбокс.

<asp:TextBox ID="textBox1" runat="server" OnTextChanged="OnTextChanged_AttributesEdited" autopostback="true">


protected void OnTextChanged_AttributesEdited(object sender, EventArgs e)
{
    btnSubmit.Enabled = true;

}

Теперь, если я уберу "autopostback = true", он не будет активировать обмен.Интересно, будет ли лучше, если для включения кнопки будет использоваться javascript, или есть ли способ предотвратить обратную передачу при срабатывании ontextchanged?

большое спасибо!

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Я думаю, что это было бы основным использованием для некоторых jQuery в вашем приложении. Без отправки сообщения обратно на сервер для включения / выключения кнопки это выглядело бы намного более плавно, быстрее загружалось и сохраняло бы текущее состояние вашей страницы без изменений. Пример может быть следующим:

<script type="text/javascript">
$(document).ready(function() {    
    $("#textBox1").change(function() {
        $("#btnSubmit").removeAttr("disabled");
    });
});
</script>

Просто вставьте вышеуказанный тег script в HTML, непосредственно перед закрытием тега body.

Однако даже лучшим решением было бы назначить определенный класс CSS всем текстовым полям, которые должны наследовать это поведение. Предполагая, что вы назначаете CSS-класс с именем "someCssClass" для всех этих текстовых полей, ваш скрипт будет выглядеть примерно так:

<script type="text/javascript">
$(document).ready(function() {    
    $("input.someCssClass").change(function() {
        $("#btnSubmit").removeAttr("disabled");
    });
});
</script>
0 голосов
/ 22 марта 2011

Я бы использовал jQuery, как упомянуто @FarligOpptrenden, но если у вас его нет и вы просто хотите простой javascript, это должно сработать.

Ввод в ваш лайтбокс:

<input type="text" id="textbox" onKeyUp="enableSubmitButton()" />
<input type="button" id="submitButton" value="Submit" />
<input type="button" id="cancelButton" value="Cancel" />

Javascript:

<script type="text/javascript">

function enableSubmitButton()
{
document.getElementById('submitButton').disabled = false;
document.getElementById('cancelButton').disabled = true;
}

</script>

Вы также можете включить / отключить кнопки загрузки в javascript:

<script type="text/javascript">

window.onload = function () {

document.getElementById('submitButton').disabled = true;
document.getElementById('cancelButton').disabled = false;

}
</script>
...