验证检查带有单个提交按钮的动态文本框

Posted

技术标签:

【中文标题】验证检查带有单个提交按钮的动态文本框【英文标题】:Validation Check for dynamic textbox with individual submit button 【发布时间】:2017-12-21 13:18:42 【问题描述】:

我正在尝试创建如下图所示的内容。 Each section is dynamically generated using simple-form

每次单击按钮保存时,都需要验证文本字段(检查它是否为整数),向控制器发送 ajax 并且不重定向到任何页面。 我编写的代码只能检查第一个字段,但无法检查其余字段。如何使每个按钮仅检查/提交相应文本框的 ajax? 这是我的代码

- @students.each do |student|
  .same-category
    .collapsible-container
      .collapsible-head
        .wrap
          .index
            h1 = student.register_no
          .name
            h3 = student.name
          .grade
            h1 U
            h5 x20.21
          .arrow
            #arrow-toggle =image_tag('arrow.svg', class: ['arrow-down', 'test'])

        .collapsible-body
          .wrap-content
            .station-grade A: <12.01s
            .station-grade B: 12.01 - 13.11
            .station-grade C: 13.11 - 14.11
            .station-grade D: 14.21 - 15.11
            .station-grade E: 15.31 - 16.51

          .score-input
            = f.input '#', label: false, wrapper: false, input_html:  class: ['result-entry-textbox'], value: @station_score 
            button#result-entry-save.result-save-button SAVE

jQuery

$('#result-entry-save').click(function() 
    var checkIsNum = /^\d+$/.test('#result-entry-textbox');
    if(isNaN(checkIsNum)) 
      alert('not num');
     else 
      alert('is num');
  
);

【问题讨论】:

尝试对按钮和文本框使用类而不是 id 并将选择器更改为 JS 中的类 是的,我同意@Pavan,因为您有多个按钮,因此您需要在视图中提及类,因为如果您在 JS 中使用 id 作为选择器,它将使用 id 搜索/查找第一个条目只有, @pavan 谢谢! @DivyaSharma 谢谢! 【参考方案1】:

像下面这样:-

$('#result-entry-save').click(function() 
    $('input[type="textbox"]').each(function() 
        var checkIsNum = /^\d+$/.test($(this));
        if(isNaN(checkIsNum)) 
          alert('not num');
         else 
          alert('is num');
        
    );
);

或者您可以将公共类添加到要检查的输入框中,然后执行以下操作:-

$('#result-entry-save').click(function() 
    $('.common-class-name').each(function() 
        var checkIsNum = /^\d+$/.test($(this));
        if(isNaN(checkIsNum)) 
          alert('not num');
         else 
          alert('is num');
        
  );
);

注意:- 除了显示多个警报,您可以在单个警报中执行,如下所示:-

$('#result-entry-save').click(function() 
    var checkval = true;
    $('input[type="textbox"]').each(function() 
        var checkIsNum = /^\d+$/.test($(this));
        if(isNaN(checkIsNum)) 
           checkval = false;
         else 
          checkval = true;
        
    );
    if(checkval == false)
        alert("some input fields have non-integer value.Check and correct!");return false;
    
);

【讨论】:

谢谢!这帮助很大! @Daniel 很高兴为您提供帮助 :):)

以上是关于验证检查带有单个提交按钮的动态文本框的主要内容,如果未能解决你的问题,请参考以下文章

带有文本框和 JS 的提交按钮

MVC3 单选按钮验证

JavaScript 检查并在提交按钮单击时动态地将文本添加到表格中

如何在提交按钮上获取 amx 迭代器所有文本框值

带有字段验证的 Yii ajaxSubmitButton()

带有表单验证的表单提交预览 (PHP)