我有一个棘手的问题,我的网页上有一个文本框,当我在其中输入内容并从中出来时,我应用了模糊事件,该事件得到执行。然后使用Ajax发送Textbox的值,然后刷新内容。
下面是代码。
$("input[type=text]").blur(function (e) {
var valList = [];
if ($(this).val() != oldVal) {
var path = $(this).attr("data-path");
$(".loading").show();
$.ajax({
type: "POST",
url: "@Url.Action("LoadSubControls", "Home")",
data: { Name: path, Products: valList },
success: function (response) {
$("#divEnquiry").empty().html(response);
$(".loading").hide();
}
});
}
});
现在我的问题是,我在文本框后立即有另一个控件单选按钮,因此当我在文本框中输入内容并直接单击单选按钮时,仅模糊文本框的事件工作,我要触发模糊和单选按钮事件也是在同一时间。
以下是单选按钮代码。
$("input[type=radio]").change(function (e) {
var path = $(this).attr("data-path");
$(".loading").show();
$.ajax({
type: "POST",
url: "@Url.Action("LoadSubControls", "Home")",
data: { Name: path, Products: valList },
success: function (response) {
$("#divEnquiry").empty().html(response);
$(".loading").hide();
}
});
});
请帮助。
答案 0 :(得分:0)
在您的blur
方法内部,只需像下面这样强制单击radio
:
$("input[type=radio]").trigger('click');
您正在考虑用户在广播中而不是在任何地方单击,但是要防止以后单击,应在触发点击事件之前检查radio
是否为checked
。
答案 1 :(得分:0)
它应该可以按您希望的方式工作。我能想到它为什么不起作用的唯一原因是,如果您的单选按钮已预先检查,因此更改事件从未触发。
最小示例:
<textarea id="text"></textarea>
<input type="radio" id="radio">
$('#text').on('blur', function(){
console.log('blur');
});
$('#radio').on('change', function(){
console.log('change');
});