循环中元素的验证

时间:2019-04-29 03:48:51

标签: javascript c# html

我在验证for循环中的每个PhoneNumber文本框时遇到麻烦。 我的验证功能可与单个Texbox很好地配合,但是当我尝试应用到循环时,我不知道javascript如何理解循环的索引。

需要帮助!

@for (int i = 0; i < Model.Count; i++)
  {
    <tr>
       <td>
         <div>
            <b>Phone Number:</b>
             @Html.EditorFor(model => model[i].Hotline, new { htmlAttributes = new { @class = "form-control ShortInput", id = "hotline[i]//html doesn't understand the index here"  maxlength = "15" } })
             <span class="ErrorBlock field-validation-valid"></span>
          </div>
         </td>
</tr>

这是验证功能:

function validateForm() {
     var result = true;
     result = checkPhone('#hotLine//"how could I get the index here"', 'Invalid phone number.') && result;
      return result;
        }

1 个答案:

答案 0 :(得分:-1)

它不会重新识别html中的索引,因为它会将其作为字符串。您可以做的是,在循环内使用var,然后将该var分配给您的id。 像这样:

@for (int i = 0; i < Model.Count; i++)
  {
    var dynamicId = "hotline["+@i+"]";
    <tr>
       <td>
         <div>
            <b>Phone Number:</b>
             @Html.EditorFor(model => model[i].Hotline, new { htmlAttributes = new { @class = "form-control ShortInput", id = dynamicId  maxlength = "15" } })
             <span class="ErrorBlock field-validation-valid"></span>
          </div>
         </td>
</tr>

可能存在一些语法错误,但这应该可以解决。

在jquery中,您可以执行以下操作;

function validateForm() {
     var result = true;
     $('.ShortInput').each(function() {
    var id = $(this).id; 
    // TODO: whatever operation you want to perform
});
        }