Javascript 覆盖数据确认值
我想根据用户在表单上的选择更改按钮(提交)上数据确认属性的值。我将以下内容放在下拉列表的更改功能上:Javascript 覆盖数据确认值,javascript,jquery,Javascript,Jquery,我想根据用户在表单上的选择更改按钮(提交)上数据确认属性的值。我将以下内容放在下拉列表的更改功能上: ... if($("#"+select_name).val() == "abc") { $(".variable_button").attr("data-confirm","abc is good choice!"); } else { $(".variable_button").attr("data-confirm",
...
if($("#"+select_name).val() == "abc")
{
$(".variable_button").attr("data-confirm","abc is good choice!");
} else
{
$(".variable_button").attr("data-confirm","abc would have been great but this is fine too...");
}
...
我面临的问题是,一旦为数据确认分配了一个非空字符串,它显然就无法更改。我在服务器代码中将其设置为“”。并且,当用户第一次在dropdownlist上进行选择时,它会更改为上面显示的两条消息之一。但如果用户再次更改选择,则数据确认消息不会更改。这是按设计的还是我遗漏了什么?不要使用.attr()
,使用:
jQuery确实允许您使用
.attr()
方法更新数据-
属性,因此其他一些东西正在破坏
下面是一个工作示例():
您可以尝试在JSFIDLE中重新发布该问题吗
在重读您的问题时,听起来好像用户第二次更改选择时事件处理程序没有触发。查看是否可以在事件处理程序中设置断点,以查看它是否被命中。数据确认属性只是用于存储消息的自定义
数据-
属性,对吗?谢谢Matt!Josh-我不知道为什么.attr()不起作用。但是我尝试了两种方法,并且.data()方法没有任何问题。使用.attr()方法,我只能将值从空字符串更改为某个值(一次),没有进一步的更改。
var newData = ($("#"+select_name).val() == "abc")
? "abc is good choice!"
: "abc would have been great but this is fine too...";
$(".variable_button").data("confirm", newData);
var counter = 1;
$('#click').click(function() {
button = $('#click');
console.log(button.attr('data-confirm'));
button.attr('data-confirm', 'this is test ' + counter);
console.log(button.attr('data-confirm'));
counter++;
});