我有多个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 -->
答案 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
的所有元素