Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 覆盖数据确认值_Javascript_Jquery - Fatal编程技术网

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++;
});