我正在尝试实现一些基本上说“如果填写此文本字段然后禁用提交按钮以便无法传递/提交表单”的Jquery
到目前为止,我已经想出了这个,但它无法正常工作
$(document).ready(function(){
$this = $("#inputValue");
if($this.val().length>0){
$('input[type=submit]').attr('disabled', 'disabled');
}
});
当我填写表格并在字段中包含文字时,我不应该仍然提交表格,我做错了什么?
由于
答案 0 :(得分:3)
您的代码仅在运行时运行一次。之后,它不再被检查。
$(document).ready(function (){
$("#inputValue").on('change', function (){
if($(this).val().length > 0){
$('input[type=submit]').attr('disabled', 'disabled');
} else {
$('input[type=submit]').removeAttr('disabled');
}
});
});
或者,正如@thomasfedb所说:
$(document).ready(function (){
$('#inputValue').on('change', function() {
$("input[type=submit]").prop('disabled', $(this).val().length > 0);
});
});
答案 1 :(得分:1)
我建议您在每次用户输入#inputValue
字段时绑定keyup
事件进行检查:
$(document).ready(function() {
$("#inputValue").on("keyup", function() {
$("input[type=submit]").prop("disabled", !!$.trim(this.value).length);
}).trigger("keyup");
});
答案 2 :(得分:1)
由于您使用的是hidden
字段,因此最好绑定change
事件:
$('#inputValue').on('change', function() {
$('input[type="submit"]').prop('disabled', this.value.length > 0);
}).change();
答案 3 :(得分:-2)
尝试使用此代码。
$('input[type=submit]').attr("disabled", true);