我有隐藏输入标记的变量名和值,我想在单击提交按钮时将其追加到表单中。我该如何编码?
这是我的代码:
<script type="text/javascript">
hname="reference";
hvalue="1";
function insertInput(){
document.write( "<input type='hidden' name='" + hname + " ' value=' " + hvalue + " '/><br/>");
}
</script>
<form id="form1">
<p><label>Username:</label> <input type="text" name="username" size="10"/></p>
<p><label>Password:</label> <input type="password" name="password" size="10"/></p>
<p id="hidden"><!-- Insert Hidden input tag here --></p>
<button type="submit' onClick="insertInput();">Log In</button>
</form>
我似乎无法让它发挥作用。请帮忙!先谢谢!
答案 0 :(得分:3)
document.write()
仅在解析文档时有效。一旦文档处于就绪状态(即DOMContentLoaded
事件已被触发),document.write
将隐式调用document.open()
,而var form = document.getElementById('form1');
form.addEventListener("submit", function() {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'reference';
input.value = '1';
this.appendChild(input);
}, true);
将重置您的文档。
您想要使用DOM方法:
{{1}}
答案 1 :(得分:3)
试试这个:
<form id="form1">
<p><label>Username:</label> <input type="text" name="username" size="10" /></p>
<p><label>Password:</label> <input type="password" name="password" size="10" /></p>
<p id="hidden"><!-- Insert Hidden input tag here --></p>
<button type="submit" onclick="return insertInput();">Log In</button>
</form>
<script type="text/javascript">
hname="reference";
hvalue="1";
function insertInput(){
var para, hiddenInput, br;
para = document.getElementById('hidden');
hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = hname;
hiddenInput.value = hvalue;
para.appendChild(hiddenInput);
br = document.createElement('br'); //Not sure why you needed this <br> tag but here it is
para.appendChild(br);
return false; //Have this function return true if you want to post right away after adding the hidden value, otherwise leave it to false
}
</script>
答案 2 :(得分:2)
这不起作用,因为document.write
仅在页面加载时有效,在页面加载后尝试使用它将失败。
您可以使用纯DOM脚本执行此操作但我建议使用像jQuery这样的DOM库,他们可以更轻松地完成这样的操作。
这是你用jQuery做的一种方法:
<form id="form1">
<p><label>Username:</label> <input type="text" name="username" size="10"/></p>
<p><label>Password:</label> <input type="password" name="password" size="10"/></p>
<button type="submit">Log In</button>
</form>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
var hname = "reference",
hvalue = "1";
$("#form1").on("submit", function () {
$(this).append("<input type='hidden' name='" + hname + " ' value=' " + hvalue + " '/><br/>");
});
});
</script>