我有一个验证算法(通过掩码检查):
function simpleval (selector,testexp) {
jQuery(selector).focusout (function() {
get_data = jQuery(this).val();
test_data = get_data.search(testexp);
if (test_data == -1){
jQuery(this).attr('value', 'INCORRECT').css('color','red');
}
else {
this.removeAttribute('style');
}
return (test_data);
});
}为了防止用户在填写表单之前单击"continue“按钮,我禁用了它:
jQuery('#continue').attr('disabled', 'disabled');然后我运行表单检查:
var tested_ip = /\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b/;
ip_test = simpleval ("#dbAddress",tested_ip);
var tested_port = /\d{2,}/;
port_test = simpleval("#dbPort",tested_port);现在,如果两个字段(IP和端口号)都填写正确,我必须启用"continue“按钮。
function buttonState(){
var isValid = false;
if(ip_test=='0' && port_test=='0') {
isValid = true;
}
if (isValid) {
jQuery('#continue').attr('disabled', '')
replaceText ('#msg','IT WORKS');
}
else jQuery('#continue').attr('disabled', 'disabled');
}
jQuery('input').on('focusout', buttonState)问题所在:一切正常,但按钮仍然被禁用。
发布于 2011-12-13 19:26:23
disabled属性是一种特殊类型的属性,如checked="checked“。我认为您应该删除整个属性,因此删除disabled=" disabled“,而不是保留disabled属性为空。
希望这能有所帮助。
发布于 2011-12-13 20:27:12
你有没有试过使用
jQuery('#continue').removeAttr('disabled')
而不是
jQuery('#continue').attr('disabled', '')
?
https://stackoverflow.com/questions/8488266
复制相似问题