验证检查动态文本框与个人提交按钮

问题描述:

我想创建类似下面的图像。每次单击按钮保存时,都需要验证文本字段(检查它是否为整数),向控制器发送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'); 
    } 
}); 
+2

尝试使用类,而不是ID为按钮和文本框,并在JS选择更改上课 – Pavan

+1

是的,我同意@Pavan,因为你有超过1个按钮,所以你需要在你的视图中提到类,因为如果你使用id作为JS中的选择器,它将搜索/仅用第一个条目标识, –

+0

@pavan谢谢! – Daniel

做象下面这样: -

$('#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; 
    } 
}); 
+0

谢谢!这非常有帮助! – Daniel

+0

@丹尼尔很高兴帮助你:) :) –