Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法通过jquery获取无线组值_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 无法通过jquery获取无线组值

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

我有一个包含两个单选按钮的单选组。此无线电组是在Ajax响应后创建的。我想获取选中单选按钮的值,但无法执行此操作。这是我的实现,任何帮助都将不胜感激

HTML:

试试这个:

$('#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);
});