jquery - 使用ajax设置单选按钮
问题描述:
我有一个页面,它带有“重新加载”按钮区域。小部件包含textareas和单选按钮。当我点击重新加载按钮时,我试图设置textarea的文本和选择单选按钮。jquery - 使用ajax设置单选按钮
我现在的代码是在第一次点击重新加载按钮。 textarea和单选按钮可以用测试值正确设置。
然后,我输入textarea并更改它的文本,并选择一个不同的单选按钮值。当我点击重新加载按钮时,textarea和单选按钮应该重新加载它们的测试值。
但是,只有textarea的值正在重新加载。单选按钮的选择不会返回到测试选择。为什么这只在我第一次点击重载按钮时才起作用?
这里是我的代码:
$('.refreshTextandRadio').click(function() {
var itemName_Text = $(this).attr('reloadName_Text');
var itemName_Radio = $(this).attr('reloadName_Radio');
var evalID = $(this).attr('evalID');
$.ajax({
type: "POST",
url: "JDFormAJAX_Reload.asp",
data: 'itemName_Text=' + itemName_Text + '&evalID=' + evalID,
success: function (msg) {
$("textarea#" + itemName_Text).val(msg);
}
})
$.ajax({
type: "POST",
url: "JDFormAJAX_Reload.asp",
data: 'itemName_Radio=' + itemName_Radio + '&evalID=' + evalID,
success: function (msg) {
$('input[name="' + itemName_Radio + '"][value="' + msg + '"]').attr('checked', true);
}
})
});
的ajaxURL页面只是简单地返回测试值,实在不够有关,包括在这里。有谁知道为什么这段代码在第一次点击时设置了这两个值,但只恢复了textarea而不是下面点击的单选按钮?
答
对于动态生成的内容,您应该附上您的事件处理程序是不是一个HTML元素(重新)使用的Ajax,而不是元素正被阿贾克斯再生(在你的情况下产生的,您的按钮与
所以.refreshTextandRadio
类,你应该点击事件附加到下一个更高的(父)是不受你的Ajax元素。为了方便说明,我将使用document
,这肯定比你的任何按钮高,并附上您的点击处理程序。
因此您的原始代码:
$('.refreshTextandRadio').click(function() {
//your actions
});
可以重新写为:
$(document).on('click','.refreshTextandRadio',function(){
//your actions
});
当然,你要使用较低的父元素(不受阿贾克斯,如上所述),使你的代码更有效。
希望这会有所帮助!
你为什么要对同一个URL执行两个同时发生的Ajax请求?为什么需要使用Ajax请求将表单重置为默认值? –