Javascript 无法通过jquery获取无线组值
我有一个包含两个单选按钮的单选组。此无线电组是在Ajax响应后创建的。我想获取选中单选按钮的值,但无法执行此操作。这是我的实现,任何帮助都将不胜感激 HTML: 试试这个:Javascript 无法通过jquery获取无线组值,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个包含两个单选按钮的单选组。此无线电组是在Ajax响应后创建的。我想获取选中单选按钮的值,但无法执行此操作。这是我的实现,任何帮助都将不胜感激 HTML: 试试这个: $('#resultTable').on("click", ".editForm2", function(){ var checked_ele = $('input[type="radio"][name="g1"]:checked'); $(checked_ele).each(function(){ // do st
$('#resultTable').on("click", ".editForm2", function(){
var checked_ele = $('input[type="radio"][name="g1"]:checked');
$(checked_ele).each(function(){
// do stuff here
});
});
希望这就是答案
由于您没有发布html,我只是在单击按钮时在div中显示该值
Html
更新
在您的评论之后,我想知道您的id为Resultable的元素是否会作为单选按钮动态加载。那样的话,绑定就不起作用了。
您应该引用DOM中已经存在的元素,比如说静态元素。尽管您仍然可以使用editForm2类动态加载元素
更多有关
可能是这样的
$('#staticParentElement').on('click', '#dynamicChildElement', function(){ //whatever });
我创造了这个。在其中,我通过显示一个添加内容的按钮来模拟ajax向DOM中添加元素
在第一种情况下,我只是将表中的内容添加到现有容器中,并将show按钮的click事件绑定到该容器中
因此,我们将单选按钮和显示按钮添加到静态静态表中
<div id="staticTable"></div> <br/>
<button id="addStatic">Add dynamic content into static Table</button><br/>
$("#addStatic").click(function() {
$('#staticTable').append("Dynamic content into static table<br/>Yes<input class='radioInput' id='g1Positive' type='radio' name='g1' value='YES'/>No<input class='radioInput' id='g1Negative' type='radio' name='g1' value='NO'/><button class='show'>Show</button>");
});
这很有效
但是,如果我们将绑定到的容器添加到DOM中,它将不起作用。例如,在fiddle中,我们在div中注入dynamicTable
<div id="ContainerForDynamicTable"></div><br/>
<button id="addDynamic">Add dynamic Table</button><br/><br/>
$("#addDynamic").click(function() {
$('#ContainerForDynamicTable').append("Dynamic table<br/><div id='dynamicTable'>Yes<input class='radioInput' id='g1Positive'type='radio' name='g1' value='YES'/>No<input class='radioInput' id='g1Negative' type='radio'name='g1' value='NO'/></div><button class='show'>Show</button>");
});
这不管用
请注意,对于制作最后一个按钮,我们应该找到.show按钮的静态父级,在这种情况下,向上树中最接近的是ContainerForDynamicTable,您甚至可以一直上到文档,尽管以后查找.show按钮的成本会更高。您可以发布一个完整的代码示例吗?@j08691完整是什么意思?我的意思是显示您的HTML,以便我们可以重新创建问题。@j08691检查我的editEditForm2类是什么,ID是什么?看到HTML的这一部分会很有帮助。我举了一个例子来猜测你的页面是如何设置的,它工作得很好。这不起作用。请注意,我的广播组是Ajax请求的结果。您绑定到的结果是什么?它也是动态添加的吗?我猜你知道你应该引用一个静态的ancestor@Tartar,我想您的问题是绑定到动态加载的元素,请检查我的更新。我是对的,解决了你的问题吗?
$("#show").click(function() {
var value = $('input[name=foo]:checked').val();
$('#result').html(value);
});
$('#staticParentElement').on('click', '#dynamicChildElement', function(){ //whatever });
<div id="staticTable"></div> <br/>
<button id="addStatic">Add dynamic content into static Table</button><br/>
$("#addStatic").click(function() {
$('#staticTable').append("Dynamic content into static table<br/>Yes<input class='radioInput' id='g1Positive' type='radio' name='g1' value='YES'/>No<input class='radioInput' id='g1Negative' type='radio' name='g1' value='NO'/><button class='show'>Show</button>");
});
$("#staticTable").on('click', '.show', function() {
var value = $(':radio[name=g1]:checked').val();
$('#staticResult').html(value);
});
<div id="ContainerForDynamicTable"></div><br/>
<button id="addDynamic">Add dynamic Table</button><br/><br/>
$("#addDynamic").click(function() {
$('#ContainerForDynamicTable').append("Dynamic table<br/><div id='dynamicTable'>Yes<input class='radioInput' id='g1Positive'type='radio' name='g1' value='YES'/>No<input class='radioInput' id='g1Negative' type='radio'name='g1' value='NO'/></div><button class='show'>Show</button>");
});
$("#dynamicTable").on('click', '.show', function() {
var value = $(':radio[name=g1]:checked').val();
$('#dynamicResult').html(value);
});