保持提交按钮被禁用,直到进行更改

时间:2012-10-22 22:59:29

标签: javascript jquery asp.net

在我的VB.NET项目中,我有一个带有一些文本输入字段和一个保存/提交按钮的UI。我希望保存按钮在页面加载时处于禁用状态,并保持这种状态,直到对其中一个输入进行更改。如果用户输入的值与页面加载时的值相同,则应再次禁用保存按钮。所以基本上,只有在实际发生变化时才应启用保存按钮。

如何使用jquery执行此操作?

3 个答案:

答案 0 :(得分:3)

$(':input').change( 
    function(){ 
       $("#submitButtonId").prop("disabled",false);
    } 
);

因为您说它是动态的,请使用on

$(document).on("change", ":input", 
    function(){ 
       $("#submitButtonId").prop("disabled",false);
    } 
);

答案 1 :(得分:2)

您可以在change事件

中处理此问题
$('input[type="text"]').on('change', function() {

     // Change event fired..

     $('input[type="submit"]').prop('disabled', false);
});

答案 2 :(得分:2)

//This will bind all existing and dynamically added selects onChange to the handler
$(document).on('change', function(e) {
    onChangeHandler();
}

// handle the event
function onChangeHandler() {
    if (checkValues()) {
       $('#yourButtonId').prop("disabled", false);
    }
    else {
       $('#yourButtonId').prop("disabled", true);
    }
}

// check all values against originals - data-* attributes are a good way to store data on 
// an element. So have you can have:
<select id="id1" data-originalvalue="myValue"></select>

// compare the current value to the original value - if any one of them differ, return
// true
function checkValues() {
    $.each($('select[data-originalvalue]'), function() {
       if ($(this).val() !== $(this).attr(data-originalvalue){
           return true;
       }
       return false;
    });
}