$(document).on('click', "#mybusi_radio", function(){
alert("Script test");
$(document).("#mybusi_radio").attr("checked", "checked");
});
我正在尝试添加"已检查","已检查"属性为输入无线电元素。这个元素在页面加载后由一些脚本创建。警报正在工作。如何向此input元素添加属性。请帮忙
答案 0 :(得分:4)
您可以使用
$(document).on('click', "#mybusi_radio", function () {
$(this).prop("checked", true);
});
答案 1 :(得分:1)
而不是
$(document).("#mybusi_radio").attr("checked", "checked");
使用
$("#mybusi_radio").prop("checked",true);
答案 2 :(得分:0)
问题是选择器:
$(document).("#mybusi_radio").attr("checked", "checked");
首先,选择document
,然后提供'#mybusi_radio'
的参数,但不提供应该传递该参数的命名方法;因此您有语法错误。
您是否编辑过它以提供适当的方法,例如find()
,以提供:
$(document).find('#mybusi_radio').attr('checked', 'checked');
这将(显示 1 )起作用。
该方法存在的问题是,您在on()
方法的匿名函数中搜索整个文档中已有参考的元素:它' s { {1}}(DOM节点)或this
(包含DOM节点的jQuery对象)。
此外,您对$(this)
事件作出反应,该事件将捕获元素本身的点击次数,但不会对用户点击关联的click
元素作出反应;所以我建议改为使用<label>
事件来提供:
change
或者,为了避免在DOM节点完全足以满足此用例时不必要地使用jQuery:
$(document).on('change', "#mybusi_radio", function () {
$(this).prop("checked", true);
});
但这有点奇怪,因为您有效地阻止用户更改元素或的$(document).on('change', "#mybusi_radio", function () {
this.checked = true;
});
/ un - checked
状态不必要地将它设置为checked
,这将是元素的默认行为(假设它确实是类型checked
的{{1}})。
重新阅读您的问题后,您似乎正在向页面添加元素(不知何故),并希望将其初始状态设置为<input>
?如果确实是用例,那么你可以简单地在创建它的时候设置元素的状态(如果你选择向我们展示创建和附加的脚本,那么对你来说会更有用)相关要素):
radio
checked
并未专门更新元素的基础属性,因此当您可能会惊讶地发现// creates an <input> element:
$('<input />', {
// sets the 'type' attribute/property to 'radio':
'type' : 'radio',
// sets the id of the <input> to
// 'mybusi_radio':
'id' : 'mybusi_radio',
// sets the 'checked' property to true
// Boolean (not a string):
'checked' : true
// appends the created <input> to the element
// identified by its id, of 'parentElementID':
}).appendTo('#parentElementID');
属性未在代码中更新/反映时被检查的无线电输入表现为未经检查的无线电输入。因此,如果您使用支持attr()
2 的jQuery版本,使用 checked
,则更为可取。 prop()
的jQuery版本。参考文献:
appendTo()
。attr()
。find()
。prop()
。