输入文本框旁边有一个复选框。如果选中该复选框,则文本框将被清空并禁用。但是,我想将之前的值存储在该文本框中,以便如果用户决定取消选中该复选框,该值将返回到文本框。这是我的代码:
function disablePath() {
var currentPath;
$('#user_strategy').on('change','input[value="all"]', function(){
var that = $(this);
if($(this).is(':checked')) {
currentPath = that.next().val();
that.next().attr("disabled", "disabled").val('');
}
else {
that.next().removeAttr("disabled").val(currentPath);
}
});
}
因此,如果我只有一个复选框,后跟一个文本框,那么效果非常好。如果我有多个复选框-文本框组合,我就会遇到麻烦,我就是这么做的。如果我选中多个复选框,则仅存储最后一个文本框内容 - 因此,如果我取消选中任何先前选中的框,则相应的文本框将填充为选中相关复选框的最后一个文本框的值,无论关系如何。有没有办法存储特定于前一个复选框的文本框的值?这是实时代码:
http://kaboukie.net/stackoverflow/
我相信我需要使用 eventData,但不确定如何使用,任何帮助将不胜感激!
最佳答案
我建议将数据附加到元素本身,这可以使用 Jquery 的 .data() 方法来完成。
这是代码,我已经测试过它可以正常工作;)
$(function() {
function disablePath() {
var currentPath;
$('#user_strategy').on('change','input[value="all"]', function(){
var that = $(this);
if($(this).is(':checked')) {
temp= that.next().val();
that.data("currentPath" , temp);
that.next().attr("disabled", "disabled").val('');
}
else {
that.next().removeAttr("disabled").val(that.data("currentPath"));
}
});
}
disablePath();
});
关于Jquery 在事件触发器上传递并存储动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640761/