我的表单上有两个输入字段 - 如果字段1包含有效数据,我只想允许用户输入field2。我怎样才能使用jQuery实现这一目标。
提前致谢
答案 0 :(得分:3)
$('#input-one').change(function(){
if($(this).val() == "valid value")
$('#input-two').removeAttr('disabled', 'disabled');
else
$('#input-two').attr('disabled', 'disabled');
});
我希望这会有所帮助。
答案 1 :(得分:1)
您希望在field1中拥有哪些数据,即采用何种格式?根据您需要编写验证函数,您应该调用field1的onblur。此验证函数应检查field1中的数据,并相应地启用/禁用field2。
即。类似的东西:
$('#field1').blur(function() {
var data = $('#field1').val();
var valid = false;
// ... do you validation here ...
$('#field2').attr('disabled', !valid);
});
答案 2 :(得分:1)
//cache the second field to make the event handler perform faster
var field2 = document.getElementById('field2');
$('#one').on('change', function () {
//check to make sure the value is "valid"
if (this.value == '') {
//if not valid then disable the input
field2.disabled = true;
} else {
//if valid then enable the input
field2.disabled = false;
}
});
以下是演示:http://jsfiddle.net/gL8Jq/
请注意,.on()
是jQuery 1.7中的新功能,在这种情况下与.bind()
相同:http://api.jquery.com/on
答案 3 :(得分:0)
这个基本结构可能对您有用:
$('#field1').change(function() {
if (isValidData($(this).val()) {
$('#field2').removeAttr('disabled');
} else {
$('#field2').attr('disabled', 'disabled');
}
}).change();
我不认为整个disable
业务非常干净。有谁知道更清洁的解决方案?
答案 4 :(得分:0)
绑定到字段1的change
事件并执行验证。然后,根据验证结果设置字段2的“已禁用”属性。
答案 5 :(得分:0)
$('id_field_2').change(function(){
if ( !is_field_valid($('id_field1').val()) ) {
$('id_field_2').val('');
}
});
你可以使用“更改”或其他键盘事件行keydown,按键。
答案 6 :(得分:0)
是。
例如,如果您只想在第一个文本框不为空时启用第二个文本框。
$('#text1').blur(function(){
if( $(this).val() == '' ) { // for example empty textbox not allowed
$('#text2').val('').attr('disabled','disabled');
} else {
$('#text2').removeAttr('disabled');
}
});