[英]Catch all radiobuttons inside a div using jQuery
有人知道如何将所有单选按钮放入div中吗? div的ID如下
<div id="quest{{ $groups }}" class="quest">
我正在使用Laravel,因此我的想法是在div中获取值,并在jQuery中添加类似
var radios = $("input[type='radio'][id^='quest'"+groups+"]");
但这是行不通的,所以我想知道如何在div中获取所有单选按钮,并使用.each进行内部循环。
我需要重复一组问题,然后才能进行验证,但仅适用于第一组,第二组未经验证,我已经检查了每个单选按钮的ID值并更改为previousid_2和调查表被克隆。 另外,我想知道在克隆调查表时如何重置值,因为如果您选择YES NO YES NO,那么在克隆调查表的第二组中,这些结果也会被选中,并且禁用字段也是如此。
您实际上是在要求几件事。 您的代码暗示您可以访问名为groups
的变量中的当前组。 所以...
1)选择div内的所有无线电输入:
var div = $("div#quest"+groups);
var radiosBtns = div.find("input[type='radio']");
2)遍历它们,并对每个元素做一些工作:
var doSomeWork = function(i,radiobtn){
console.log('the value of radio button #' + i ' is ' + radiobtn.value);
};
$.each(radioBtns,doSomeWork);
3)复制一组单选按钮:
var fromgroup = $("div#quest"+groups);
var togroup = fromgroup.clone();
var insertionPoint = $('body');
var toGroupId = 'questXXX';
// set the ID so it can be targetted
togroup.prop('id',toGroupId);
// reset radio button values
togroup.find('input[type="radio"]').each(function(){
this.prop('checked',false);
});
togroup.appendTo(insertionPoint);
4)在特定组上运行验证
var validateGroup = function(elements){
// your validation logic goes here
var isValid = false;
$.each(function(){
console.log( this.name, this.value );
});
return isValid;
};
// run the validation on the newly inserted group
var targetElements = $("#"+toGroupId).find("input[type='radio']");
var groupIsValid = validateGroup( targetElements );
您可以获取所有单选按钮并对其进行迭代,如下所示
$("input[type='radio'][id^='quest']").each(function(){
// add your logic here
});
使用ID非常简单。要获取以“ quest”开头的所有元素,应使用:
$("[id^=quest]")
为了得到那些以“詹德”结尾的人
$("[id$=quest]")
完整的答案是
var radios = $("input[type='radio'][id^='quest']");
关键是如果要通配类:( :(
$("[class^=quest]")
在像
<pre>
<a class="btn quest primary">link</a>
<pre>
它不起作用,因此当您找到它时,您将需要一个更复杂的通配符,直到我为止:D
事实是,每当需要使用类获取元素列表时,都将不需要它,只需使用一个通用类即可:D希望我能对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.