获取动态定义的选中单选按钮的属性
Get properties of dynamically-defined, checked radio button
有很多类似的问题,但我仍然不明白。
我有一组动态定义的单选按钮(按钮的数量和它们的标签都在变化)。
我只需要获得与选中的单选按钮相关联的标签和数字。我该怎么做呢?
我做了一个JS小提琴显示,当我点击任何按钮,选中的单选是"未定义"。下面是代码:
$(document).ready(function() {
var myArray = ["never", "sometimes", "always"];
for (i = 0; i < myArray.length; i++) {
addradiobutton("radio", i + 1, label = myArray[i]);
}
function addradiobutton(type, number, text) {
var label = document.createElement("label");
var element = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute("type", type);
element.setAttribute("value", number);
element.setAttribute("name", type);
element.setAttribute("id", "radio_" + number);
label.appendChild(element);
label.innerHTML += text;
var foo = document.getElementById("questionAnswerRadio");
//Append the element in page (in span).
foo.appendChild(label);
}
$("#questionAnswerRadio").click(function(event) {
var currentSlideResult = 0;
currentSlideResult.answerChosen = $("#questionAnswerRadio :radio:checked + label").text();
currentSlideResult.numberChosen = $("#questionAnswerRadio :radio:checked + value").text();
alert(currentSlideResult.answerChosen)
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="questionAnswerRadio"></div>
- 在事件处理程序中使用
$(this)
来获取所单击的单选按钮的值和标签 - 将空对象分配给变量
currentSlideResult
- 使用
$(this).parent().text()
获取与单选按钮关联的标签 - 使用
change
事件代替click
- 你可以直接将数组元素传递给函数,不需要将它赋值给变量,然后再传递变量
- 创建新元素和附加元素,你可以使用jQuery
$(document).ready(function() {
var myArray = ["never", "sometimes", "always"];
for (i = 0; i < myArray.length; i++) {
addradiobutton("radio", i + 1, myArray[i]);
}
function addradiobutton(type, number, text) {
var input = $('<input />')
.attr({
type: type,
value: number,
name: type,
id: 'radio_' + number
});
$('<label />')
.text(text)
.prepend(input)
.appendTo('#questionAnswerRadio');
}
$("#questionAnswerRadio").on('change', ':radio', function(event) {
var currentSlideResult = {};
currentSlideResult.answerChosen = $(this).parent().text();
currentSlideResult.numberChosen = $(this).val();
alert(currentSlideResult.answerChosen);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="questionAnswerRadio"></div>
相关文章:
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- JavaScript / jquery:如果选择了单选按钮并且数据属性符合条件,则添加类
- 当我关联runat=“server”属性时,JQuery UI 按钮集在单选按钮上不起作用
- 单选按钮和复选框.防止更改值属性
- 我可以't获取单选按钮上的onclick属性以执行javascript函数
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- 根据单选按钮id属性调用ajax jquery
- 使用FOR属性从与单选按钮关联的html标签中获取值
- 将必需属性添加到DIV On单选按钮更改中的输入
- 选择所有没有值属性的单选按钮的最安全方法
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何转换我的 js 代码,以便对象的每个属性都通过输入值和单选按钮值更新
- 单选按钮检查属性在函数 - JavaScript 中失败
- Ruby - Selenium Webdriver , AngularJS 单选按钮无法检测属性
- 选择单选按钮时删除禁用属性
- 使用 Jquery 从对象属性填充单选按钮
- 具有动态单选按钮的必需属性(NG 重复)
- 引导数据切换单选按钮/复选框选中属性
- 使用 Angularjs 中的单选按钮动态添加 url 和 alt 属性
- 如何通过单击附近的单选按钮来删除文本框的禁用属性