Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 JQuery字符串变量_Javascript_Jquery - Fatal编程技术网

要在字段中显示的JavaScript JQuery字符串变量

要在字段中显示的JavaScript JQuery字符串变量,javascript,jquery,Javascript,Jquery,我正在使用JavaScript JQuery,当我试图在字段中显示变量的内容时,它不起作用。 这是我的代码: function editEvolution(pos, nature, desc, di) { $('#diE').val(di); $('#natureE').val(nature); $('#descE').val(desc); $('#BtnAddEditEvo').attr('value', "Update"); $(

我正在使用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+")");

}
谢谢你的帮助


如果vars nature desc是字符串,则字段
$('#diE')
$('#nature')
$('#descE')
的值不会改变,但如果它是一个数字,则会起作用。问题是,您混合了原生JS、内联JS和jQuery世界中最差的内容。你从来没有把代码放在一个字符串中,句号。如果你这样做了,你就是做错了

所以。。如何做好这件事

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

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

首先不要使用attr设置onclick

我会解释什么是错的

$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
如果
pos=“foo”
,它将呈现为

<div onclick="doEditEvolution(foo);"></div>
为什么数字起作用?因为数字不需要引号。它打了一个有效的电话。它呈现为:

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

您应该使用
.val()

设置值,真的吗
.attr('onclick'
…真的吗?如果您有一个JSFIDLE供我们使用,这将非常有帮助。顺便说一句,使用引号也是一个坏主意,因为如果字符串包含引号,它会断开。
JSON.stringify()
会更好。更不用说它仍然是垃圾,因为整个“将代码放入字符串”部分…但我正在寻找变量foo你是否意识到你正在做的是:
var myString=“asdf”+pos+“qwert”;
它不是对变量的引用,它是一个字符串……是的,我知道你的意思,它非常有用,谢谢你。我不太了解解决方案,但问题总是在这里,因为我的问题不在按钮,而在字段中显示变量值。它们是什么类型的字段?
?它们是“文本”假设ID是正确且唯一的,那么使用
.val()
输入应该可以工作。是的,对于firebug,我看到VAR的值是正确的,非常奇怪的是,当输入是数字时,它可以工作!
<div onclick="doEditEvolution(3);"></div>
$('#BtnAddEditEvo').on('click', function() { doEditEvolution(pos); });