在Bootstrap中创建表单验证(没有插件)

时间:2015-08-05 21:17:55

标签: jquery html forms twitter-bootstrap validation

我不一定需要一个完整的jQuery插件来处理我在这里寻找的那种验证。也就是说,我只想保持一个表单输入被禁用,直到整数被输入另外两个,然后将其解锁。这是我用来实现这个的if-loop。

if ($("#q") && $("#target") === ''){
  $('#read_return_response_rate_ids').attr('disabled', 'disabled')
} else {
  $('#read_return_response_rate_ids').attr('disabled', '')
}

Bootstrap有一个漂亮的标记选择器叫做“禁用”,如果你把它设置为“禁用”,它实际上会禁用表单输入。我不确定将禁用的表单字段设置为空字符串是否会将其反转,因此这也是问题的一部分。我找不到任何指向Google上禁用方法相反的内容,所以我不确定是否存在“禁用”属性的反转。

老实说,我觉得我错过了一些微不足道的东西,一旦答案透露给我,我将会面临核问题。在此先感谢那些提供帮助的人。

2 个答案:

答案 0 :(得分:1)

这就是我提出的:

$(document).keyup(function () {
    if ((isNaN($('#num1').val()) == false && $('#num1').val().length > 0) && (isNaN($('#num2').val()) == false && $('#num2').val().length > 0)) {
        $('#num3').removeAttr('disabled');
    } else {
        $('#num3').attr('disabled','disabled');
    }
});

Here is the JSFiddle demo

第3个文本框仅在前两个文本框包含数字时启用。

只是指出,disabled属性是HTML5属性,而不是Bootstrap特定属性:)

答案 1 :(得分:1)

我用这个:

$('#read_return_response_rate_ids').removeAttr('disabled');

你的代码看起来像 (更新正则表达式/^\d+$/.test(val)以测试是否只输入数字):

function enableOrDisableField()
{
    if (/^\d+$/.test($("#q").val()) && /^\d+$/.test($("#target").val))
    {
         $('#read_return_response_rate_ids').attr('disabled','disabled');
    }
    else
    {
         $('#read_return_response_rate_ids').removeAttr('disabled');
    }
}

$("#q").on("change",function(){
enableOrDisableField();
});
$("#target").on("change", function(){
enableOrDisableField();
});