来自数组的Jquery选择器字符串似乎无法识别

时间:2014-07-17 10:55:50

标签: jquery forms jquery-selectors radio-button

我有多个div id="p-1"id="p-2",其中每个div包含一组不同的单选按钮。

单击提交按钮时,我会检查是否选择了一个单选按钮并继续进行。

我的问题:无论选择一个单选按钮,我都被卡在alert('Nothing is checked!'); - 我怀疑if (!$(pArray[pArrayIndexCount]+" input[name='optionsRadios']:checked").val() /数组中的选择器是问题,因为硬编码div工作正常如下:if (!$("#p-1 input[n..... - 任何想法?

JS:

var pArrayDefaultIndex = 0;
var pArray = ["p-1", "p-2", "p-3", "p-4"];

$('.submit-btn').click(function(e){
    if (!$(pArray[pArrayIndexCount]+" input[name='optionsRadios']:checked").val()) {
      //alert('Nothing is checked!');
    }
    else {
      //alert('One of the radio buttons is checked!');
      pArrayDefaultIndex++; //count up to check radio in next container
    }
});

HTML:

<div class="p-item" id="p-1">
<div class="radio">
  <label>
    <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1">
      text
    </label>
  </div>
  <div class="radio">
    <label>
    <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
      text
    </label>
  </div>
  <button class="submit-btn">Submit</button>
</div> <!-- p-1 -->

<div class="p-item" id="p-2">
<div class="radio">
  <label>
    <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1">
      text
    </label>
  </div>
  <div class="radio">
    <label>
    <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
      text
    </label>
  </div>
  <button class="submit-btn">Submit</button>
</div> <!-- p-2 -->

2 个答案:

答案 0 :(得分:3)

您缺少id selector(#) - p-1是包装元素的ID,因此您需要将它与ID选择器一起使用。

$('#' + pArray[pArrayIndexCount]+" input[name='optionsRadios']:checked")

编写if条件的另一种方法是

if (!$('#'+ pArray[pArrayIndexCount]+" input[name='optionsRadios']").is(':checked')) {

答案 1 :(得分:0)

您缺少选择器中的#

此外,您可能希望将代码放在循环中,因为您似乎在递增pArrayDefaultIndex,但您的代码只会被调用一次。我个人建议在上面放一个课而不是ID,并使用类似的东西......

$(".yourclass").each(function(){
    // Find your input element in relation to this object
});

这将在与该选择器匹配的所有元素上执行对象,即具有类yourclass的所有元素