JavaScript JQuery String Var 显示在字段中

JavaScript JQuery String Var to show in a field

本文关键字:字段 显示 Var JQuery String JavaScript      更新时间:2023-09-26

我正在使用JavaScript JQuery,当我尝试在字段中显示变量的内容时,它不起作用。有我的代码:

function editEvolution(pos, nature, desc, di) {
      $('#diE').val(di);
      $('#natureE').val(nature);
      $('#descE').val(desc);
      $('#BtnAddEditEvo').attr('value', "Update");
      $('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
}
提前

感谢帮助。

字段 $('#diE')$('#natureE')$('#descE') 的值如果变量性质 desc 是字符串,则不会改变,但如果它是一个数字,它就可以工作

问题是你混合了来自本机JS,内联JS和jQuery世界的最糟糕。你永远不会把代码放在字符串中,句点。如果你这样做,你就做错了。

那么..如何正确地做到这一点呢?

$('#BtnAddEditEvo').val('Update').on('click', function() {
    doEditEvolution(pos);
});

如果对同一对象多次调用editEvolution,请在.on(...)调用之前添加.off('click')以取消绑定以前的处理程序。

首先不要使用 attr 来设置点击...

我会解释什么是错的

$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");

如果pos="foo",它将呈现为

<div onclick="doEditEvolution(foo);"></div>

看到问题了吗?它正在寻找一个可变foo。您需要添加引号。

$('#BtnAddEditEvo').attr('onclick', "doEditEvolution('"+pos+"')");
                                                     ^       ^

为什么数字有效?因为数字不需要引号。它进行有效的调用。它呈现为:

<div onclick="doEditEvolution(3);"></div>

你需要做的是以正确的方式使用jQuery并使用事件。

$('#BtnAddEditEvo').on('click', function() { doEditEvolution(pos); });

你应该用.val()设置值