Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于表单验证的Rails方式+;无提交按钮_Javascript_Jquery_Ruby On Rails_Forms - Fatal编程技术网

Javascript 用于表单验证的Rails方式+;无提交按钮

Javascript 用于表单验证的Rails方式+;无提交按钮,javascript,jquery,ruby-on-rails,forms,Javascript,Jquery,Ruby On Rails,Forms,目前我正在使用jQuery来处理这个问题,但它不是最优的——我可以经常模拟其中的bug(提交按钮要求我多次单击返回字段) $(document).ready(function (){ validate(); $('#required_field1, #required_field2, #required_field3, #required_field4, #required_field5, #required_field6').change(validate); }); fun

目前我正在使用jQuery来处理这个问题,但它不是最优的——我可以经常模拟其中的bug(提交按钮要求我多次单击返回字段)

$(document).ready(function (){
    validate();
    $('#required_field1, #required_field2, #required_field3, #required_field4, #required_field5, #required_field6').change(validate);
});

function validate(){
    if ($('#required_field1').val().length   >   0   &&
        $('#required_field2').val().length  >   0   &&
        $('#required_field3').val().length    >   0 &&
        $('#required_field4').val().length    >   0 &&
        $('#required_field5').val().length    >   0 
        ){
        $("input[type=submit]").prop("disabled", false);
    }
    else {
        $("input[type=submit]").prop("disabled", true);
    }
}
虽然我理解数据绑定的概念对它并不友好,但我想知道在Rails中是否有更好的方法来实现这一点

目前没有它,你可以提交一个空白页,并立即得到一个错误,这是比这更糟糕的经验

感谢您的反馈

Rails 5+Bootstrap3(这并不重要。)

我会使用:

例如:

注意:这只是一个让您理解这个概念的示例(因为我没有您的HTML/Rails模板)

编辑

将此逻辑用于更改每个文本字段的事件

jQuery("#required_field1, #required_field2, ...").change(function() {
  // Above code goes here
});
我将使用:

例如:

注意:这只是一个让您理解这个概念的示例(因为我没有您的HTML/Rails模板)

编辑

将此逻辑用于更改每个文本字段的事件

jQuery("#required_field1, #required_field2, ...").change(function() {
  // Above code goes here
});

如果字段是表的列,那么为什么不使用rails的验证方式,比如:
validate:required\u field1,presence:true
…@Abhi这基本上就是我要问的-这会传递到submit按钮吗?或者你是在模型中讨论吗?是的,如果你提到的字段是DB列,那么你必须让ils处理验证@Abhi谢谢-这有助于我处理后端验证,但是有没有更好的Rails方法使Submit按钮在所有表单填写完毕之前不可点击?或者是我仅有的jQuery方法?我已经发布了一个答案,我觉得当字段数量很多时会更干净。顺便说一句,在你的代码中,你没有需要在函数内部调用validate,如:
$('required_field1,'required_field2,…')。更改(function(){validate()})
如果字段是表的列,那么为什么不使用rails验证方式,比如:
validate:required\u field1,presence:true
…@Abhi这基本上就是我要问的-这会被传递到提交按钮吗?或者你是在模型中讨论吗?是的,如果你提到的字段是DB列,那么你需要t让rails处理验证@Abhi谢谢-这有助于我处理后端验证,但是rails有没有更好的方法使提交按钮在所有表单填写完毕之前不可点击?或者是我唯一的jQuery方法?我已经发布了一个答案,我觉得当字段数量很多时,这个答案会更干净。顺便说一句,在你的cod中e、 您需要在函数内部调用validate,如:
$('required_field1,'required_field2,…')。更改(function(){validate()});