我有一个使用 jscript 提交到服务器的表单,但是我需要发布提交按钮的值。这不能以传统方式完成,我必须使用 jscript 来发布表单。我正在做的是,当单击按钮时,我想创建一个带有按钮值的隐藏文本项并将其发布到服务器。我在创建元素并将其附加到表单时遇到一些问题:
JScript
$(document).ready(function(){
$('#query').click(function(e){
var form = $('citizenRegistration');
var self= $("#query"),newElement = $("<input type='hidden'/>");
alert("self value is : "+self.val());
//create a new element and copy attributes
newElement
.attr("name", 'user_request2')
.val(self.val())
.appendTo('.buttons');
alert(newElement.attr("name"));
e.preventDefault();
//alert($(this).val());
//submitPage();
});
});
HTML
<div class="buttons">
<ol>
<li><input id="save" type="submit" name= "user_request" value="Save"/>
<input id="update" type="submit" name= "user_request" value="Update"/>
<input id="query" type="submit" name= "user_request" value="Query"/>
</li>
</ol>
</div>
最佳答案
在对 attr()
的调用中指定属性 type
,而不是在元素的构造中。此外,citizenRegistration
的选择器缺少 .
或 #
,具体取决于它是 ID 还是类。
$(document).ready(function(){
$("#query").click(function(e){
var form = $("#citizenRegistration"); //Added # may need .
//removed type=hidden, you can just use $(this)
var self= $(this),newElement = $("<input/>");
//create a new element and copy attributes
newElement.attr({
"name":"user_request2",
"type":"hidden" //added new attribute
}).val(self.val()).appendTo(".buttons");
e.preventDefault();
});
});
工作示例: http://jsfiddle.net/BXqVP/1/
使用 firebug 检查页面时可以看到隐藏元素:
关于javascript - 单击按钮时使用 Jquery 创建隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422655/