JQuery中select change事件该怎么触发?我想通过Ajax把所选择选项的值发送到后台处理一些逻辑。。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery中select change事件该怎么触发?我想通过Ajax把所选择选项的值发送到后台处理一些逻辑。。。相关的知识,希望对你有一定的参考价值。
参考技术A change只能可以用下拉列表触发,例如$("#select").change(function()
//$(this).val() 得到当前选中的值
//你的ajax函数
); 参考技术B $("select").change(function()
var value=$(this).val();
$.ajax(
url:"text.php",
data:send:value,
dataType:"josn",
success:function(res)
console.log(res);
,
error:function()
)
) 参考技术C 我也不懂是change还是onchange触发选择更改事件了,
反正前几天我用change根根就不会触发选择事件,
后来改成了onchange就可以了 参考技术D 前面的写的很好了,那个select就是你下列表的id
如何使 select .change 事件在失去焦点之前不会触发(最好使用 jquery)?
【中文标题】如何使 select .change 事件在失去焦点之前不会触发(最好使用 jquery)?【英文标题】:How do I make a select .change event not fire until it loses focus (using jquery preferably)? 【发布时间】:2010-02-12 19:33:51 【问题描述】:我有一个使用 dropdownchecklist jquery 插件的选择框。我只想在选择框失去焦点后触发更改事件。
在选择列表中的项目时,jquery .change 事件会立即为选择框触发。在我的情况下,由于可以选择多个项目,我只希望在失去焦点后触发更改,假设甚至选择了新项目。
我以为我可以进行某种链接,例如 $('#MySelect').change().blur(...) 或某种嵌套之类的东西,但我真的无法让它像这样工作我会期待的。
有什么想法吗?
【问题讨论】:
【参考方案1】:也许您只想为 blur 事件提供一个处理程序而完全忽略 change 事件。然后,您必须自己跟踪更改。一个建议是让 change 事件简单地更新一个变量,告诉您发生了更改,而无需执行任何其他操作。然后模糊事件可以这样做:
$('#yourselect').blur(function()
if(changesOccurred)
//do something about it
changeOccurred = false;
);
$('#yourselect').change(function()
changeOccurred = true;
);
【讨论】:
【参考方案2】:你应该能够做到这一点。
$('select').focus(function()
$(this).data( 'startValue', $(this).val() );
$('select').change(function(event)
event.preventDefault();
);
$('select').blur(function()
if ( $(this).data('startValue') == $(this).val() )
//nothing has changed
else
//something's different
【讨论】:
【参考方案3】:当下拉列表更改时,change
事件会被触发。你无法改变它(在那种情况下多么有趣的一句话)。
您必须设置您的代码,以便通常应该在 change
上执行的所有功能都在 blur
事件上执行。
更新:如果你提供一些代码和解释什么时候应该执行,它会更容易帮助你。
【讨论】:
是的,我知道,但我不希望这一切都发生在模糊事件中。我不希望每次下拉模糊时都发生部分回发,我只希望在进行实际更改时运行特定代码。在不知道它是否既模糊又改变的情况下,我不知道何时运行代码。以上是关于JQuery中select change事件该怎么触发?我想通过Ajax把所选择选项的值发送到后台处理一些逻辑。。。的主要内容,如果未能解决你的问题,请参考以下文章