从隐藏更改为文本框.我的代码有什么问题?


Change from hidden to textbox. What's wrong in my code?

我有一个表单,其中一些字段类型为文本,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>");