我有一个表单,其中一些字段类型为文本,2个字段(名称和第二个名称)默认值,这2个字段的类型="隐藏"。
现在,我想在表单"为另一个人填写订单"上添加一个链接。如果用户单击此链接,则字段名和第二个名称必须为文本类型,以允许用户输入名称/第二个名称。我尝试使用jQuery删除现有的隐藏字段,并创建一个新的文本框在它的地方,与隐藏的一个相同的值。
下面是我想要的一个例子:http://jsfiddle.net/FT2B3/1/
你能告诉我怎么了吗?提前谢谢。
(...)
if ($field_label=="First name")
{
return sprintf("<div class='ginput_container'>$fname<input name='n1' id='$fname1' type='hidden' value='$fname' class='ginput_container/></div>");
?>
<script type="text/javascript">
$(function(){
$('#nform').click(function()
{
$nbox1 = $("<div class='ginput_container'><input id='$fn1' type='text' class='ginput_container'/></div>").val($('#fname1').val());
$('#fname1').after($nbox1).remove();
});
});
</script>
<a href="#" id="nform">Link</a>
<?php
}
(...)
这个怎么样?
HTML:<input id="hiddenname" type="hidden" value="secret value" /><br />
<a href="#" id="showLink">Show me the hidden field!</a>
Javascript: $(function() {
$('#showLink').click(function() {
$('#hiddenname').prop('type', 'text');
});
});
因为一个div
元素是包装input
元素,当你试图设置值与.val()
jQuery试图设置值的div
元素。您可以在创建input
字段时设置该值,如下所示:
$nbox1 = $("<div class='ginput_container'><input id='$fn1' type='text' class='ginput_container' value='" + $('#fname1').val() + "' /></div>");