我在 Jquery 中编写了一些代码,当按下按钮时,创建一个新变量并将其显示在屏幕上。我想将输入到这个新变量中的任何数据存储在数据库中,但是在到达那里之前,我必须弄清楚如何正确访问变量信息。
在 HTML 中,我创建了 3 个文本框和一个按钮,用于添加最多 7 个文本框,总共 10 个。我的代码如下所示(这些文本框存储在数据库中很好):
<table style="width:90%" class="Long-Term-Conditions">
<center>
<tr>
<td><b><center>Long term condition 1:</center></b></td>
<td><center><input type='text' id="Var1" name ='Var1' value='%Var1%' /></center></td>
</tr>
<tr>
<td><b><center>Long term condition 2:</center></b></td>
<td><center><input type='text' id="Var2" name ='Var2' value='%Var2%' /></center></td>
</tr>
<tr>
<td><b><center>Long term condition 3:</center></b></td>
<td><center><input type='text' id="Var3" name ='Var3' value='%Var3%' /></center></td>
</tr>
</center>
</table>
<a href="#" title="" class="add-cond" id="add-cond">Add another long-term health condition</a>
<div id="Message"></div>
我现在的问题是我的 Jquery 变量无法被检查(说不可用)并且之后没有数据传递到数据库。我的 Jquery 看起来像这样:
<script>
//Adds another row to the above table.
var counter = 3;
jQuery('a.add-cond').click(function(event){
event.preventDefault();
if (counter < 10) {
counter++;
var newRow = jQuery('<tr><td><b><center>'+ "Long term condition "+ counter + ":" + '</center></td> <td><center><input type="text" name="Var' +
counter + '" id="Var' + counter + 'value="%Var' + counter + '%"/></center></b></td></tr>');
jQuery('table.Long-Term-Conditions').append(newRow);
}
else
{
document.getElementById("add-cond").style.visibility = "hidden";
document.getElementById("Message").innerHTML = '<font color="Red">Please
contact us</font>';
}
});
</script>
代码用于创建新变量,但是输入到新创建的文本框中的任何数据都不会传递到调试器或数据库。我究竟做错了什么?如有任何帮助,我们将不胜感激。
最佳答案
您遇到的问题是,当您将单击事件绑定(bind)到元素时,它仅绑定(bind)到文档中已存在的元素。因此,当您添加新的事件时,它不会触发该单击事件,因为您没有将其绑定(bind)到新的事件。
一个简单的解决方案是将点击事件监听器添加到正文,如下所示:
jQuery('body').on('click', 'a.add-cond', function(event){
我认为这就是您正在寻找的。p>
就像另一个人提到的那样,你缺少结束引号和空格
id="Var' + counter + 'value="%Var' + counter + '%"
应该是:
id="Var' + counter + '" value="%Var' + counter + '%"
关于javascript - 在 Jquery 中创建的变量未出现在调试器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101912/