jquery - 在 jquery 的隐藏文本字段中传递变量值

标签 jquery

嘿,大家好,我想将变量 pid 值传递给隐藏文本字段 pid,但无法这样做。

HTML 代码:

<div id="overlay_forma">
<h4>Another popup</h4>

<input id="addElement" type="button" value="Add to Form" />
<input id="removeElement" type="button" value="Remove" />
<form id="samplecode" name="samplecode" method="POST" action="<%= request.getContextPath() %>/AddProjectTaskDAO">
 <fieldset>
  <legend><b>&nbsp;&nbsp;&nbsp;Dynamically added form elements&nbsp;&nbsp;&nbsp;</b></legend>
  <div id="generatedForm">
   <div>
    <input id="processForm" type="submit" value="Submit to Process" />
   </div>  
  </div>
 </fieldset>
 </form>
 <center><a href="#" id="closea" >Close</a></center>
 </div>

jQuery 代码:

var counter = 1;

$("#addElement").click(function(event){

 var pid=$('#addElement').data('pid');
 var pname=$('#addElement').data('pname');

 if(counter>10){
     alert("Only 10 textboxes allow");
     return false;
}   

 var $newDiv = $(document.createElement('div'))

  .attr("id", 'TextBoxDiv' + counter);

 var $newInput = $("<label>Input Box: </label>" + "<input type='hidden' id='pid' name='pid' value='pid'>" + "<select name='uname'><c:forEach items='${ual}' var='u'><option value='<c:out value='${u.uname}'></c:out>'><c:out value='${u.uname}'></c:out></option></c:forEach></select>" + "<textarea rows='5' cols='15'></textarea>" + "<input type='text'>");
 $newInput
   .attr("name", "$('#addElement').data('pid')" + counter)
   .addClass("text")
   .attr("name", "uname" + counter)
   .addClass("text")
   .attr("name", "ptdesc_emp" + counter)
   .addClass("text")
   .attr("name", "ptestd_time_alloc" + counter)
   .addClass("text");
 $newInput.appendTo($newDiv);
 $newDiv.appendTo($("#generatedForm"));

 counter++;

 });

我还尝试在隐藏文本字段的 val 中添加 $('#addElement').data('pid') 而不是 pid,但仍然无法显示 pid 的输出。

感谢任何帮助。

最佳答案

使用'"+pid+"' - pid 是变量。

<input type='hidden' id='pid' name='pid' value='"+pid+"'>

而不是

<input type='hidden' id='pid' name='pid' value='pid'>

替换为这一行

var $newInput = $("<label>Input Box: </label>" + "<input type='hidden' id='pid' name='pid' value='"+pid+"'>" + "<select name='uname'><c:forEach items='${ual}' var='u'><option value='<c:out value='${u.uname}'></c:out>'><c:out value='${u.uname}'></c:out></option></c:forEach></select>" + "<textarea rows='5' cols='15'></textarea>" + "<input type='text'>");
<小时/>

注意:

在您尝试附加的代码中,id='pid' 对于每个附加事件都保留在那里。这将导致重复的 ID。

<强> Working Fiddle

关于jquery - 在 jquery 的隐藏文本字段中传递变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24031477/

相关文章:

javascript - jquery错误$不是函数

jquery - 使用 jQuery 测试子项是否包含特定文本

javascript - 如何解决与 primefaces jquery 的冲突

javascript - 在特定时间段内页面加载时弹出窗口

javascript - 什么决定了 Jquery 中弹出图像的边距变化量

jquery - 使用 jQuery 将 div 包装到包装器 div 中

jquery - 为什么我不能选择 use .play() 使用 jQuery 选择视频?

javascript - 更改值时如何防止输入框事件传播?

javascript - 如何将 jquery 应用于由 ajax 调用填充的标记

javascript - 如何阻止 jQuery.ajax() 将失败记录到控制台?