如何在LOOP中增加jQuery中的变量名

时间:2017-09-22 02:45:56

标签: javascript jquery

我使用循环插入一些textbox如下。

txtTimeIn1 txtTimeIn1 txtchkbox1
txtTimeIn2 txtTimeIn2 txtchkbox2
txtTimeIn3 txtTimeIn3 txtchkbox3
txtTimeIn4 txtTimeIn4 txtchkbox4

我想检查txtTimeIn或txtTimeOut是否为空。因此,我在所有txtchkbox中运行一个循环,当它被选中时,我将检查txtTimeIn或txtTimeOut是否为空。如果是这样我会提示用户。我遇到的问题是语法请帮忙。我有以下代码。

 function checkempty() {
  for (i = 1; i <= 10; i++) { 
    if($('#txtchkbox' + i + ').val() != ''){
      if($('#txtTimeIn' + i + ').val() == '' OR $('#txtTimeOut' + i + ').val() == ''){
        alert('Forgot to insert time ');
      }
    }
  }
}

$('#txtchkbox' + i + ').val() != ''这部分不确定怎么写?

4 个答案:

答案 0 :(得分:0)

我认为你这里有错误

 if($('#txtTimeIn' + i + ').val() == '' OR $('#txtTimeOut' + i + ').val() == ''){

这应该是

 if($('#txtTimeIn' + i).val() == '' OR $('#txtTimeOut' + i).val() == ''){

您还可以在每个.val()上使用trim()来清理不需要的空格

.val().trim()

答案 1 :(得分:0)

在所有if语句中都有一个额外的单引号

function checkempty() {
  for (i = 1; i <= 10; i++) { 
    if($('#txtchkbox' + i + ').val() != ''){
      if($('#txtTimeIn' + i + ').val() == '' OR $('#txtTimeOut' + i + ').val() == ''){
        alert('Forgot to insert time ');
      }
    }
  }
}

将其更改为

function checkempty() {
  for (i = 1; i <= 10; i++) { 
    if($('#txtchkbox' + i).val() != ''){
      if($('#txtTimeIn' + i).val() == '' OR $('#txtTimeOut' + i).val() == ''){
        alert('Forgot to insert time ');
      }
    }
  }
}

您还可以查看length

$('#txtchkbox' + i).val().trim().length

.trim将从开头或尾随删除空格。

答案 2 :(得分:0)

分别用以下代码替换if语句。

if($(&#39;#txtchkbox&#39; + i).val()!=&#39;&#39;)

if($(&#39; #txtTimeIn&#39; + i).val()==&#39;&#39; OR $(&#39;#txtTimeOut&#39; + i).val ()==&#39;&#39;)

在i之后,由于元素ID字符串已经完成,因此您不需要单引号连接。此外,如果任何连接开始,它也应该完成。

答案 3 :(得分:0)

处跟踪单引号时出现语法错误

$('#txtchkbox' + i + ')

您可以使用属性开头的选择器来选择id"txtTimeIn"开头的所有元素,或"txtchkbox".is()来检查.value的{​​{1}}任何匹配的元素都是空字符串""

&#13;
&#13;
function checkempty() {
  if ($("[id^=txtTimeIn], [id^=txtchkbox]").is(function() {
    return this.value === "";
  })) {
    alert('Forgot to insert time ');
  }
}

$("[id^=txtTimeIn], [id^=txtchkbox]").on("keyup", checkempty)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<input type="text" id="txtTimeIn1">
<input type="text" id="txtchkbox1">
<input type="text" id="txtTimeIn2">
<input type="text" id="txtchkbox2">
&#13;
&#13;
&#13;