我有一个表单,其中包含一些文本类型字段和两个字段(名称和第二名称),默认情况下具有值,这两个字段的类型为“隐藏”。
现在,我想在“填写另一个人的订单”表单上添加一个链接。如果用户单击此链接,则字段名称和名称必须是文本类型,以允许用户输入名称/秒名称。我尝试使用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
}
(...)
答案 0 :(得分:3)
这个怎么样?
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');
});
});
答案 1 :(得分:0)
因为当您尝试使用div
设置值时,input
元素正在包装.val()
元素,jQuery会尝试将值设置为该div
元素。您可以在创建input
字段时设置值,如下所示;
$nbox1 = $("<div class='ginput_container'><input id='$fn1' type='text' class='ginput_container' value='" + $('#fname1').val() + "' /></div>");