比方说,我有这样的形式:某种形式的数值()
<form action="submit" method="post">
<select name="category" id="categorylist">
<option value="love">Love</option>
<option value="magic">Magic</option>
<option value="custom">Custom</option>
</select>
<textarea name="content">SomeContent</textarea>
<input type="submit">
</form>
我想给select
变成一个input
当我选择自定义,所以我想出了这个:
$(function(){
$('#categorylist').change(function(){
$(this).replaceWith('<input type="text" name="category">');
});
if($('#categorylist').val() == 'custom')
$('#categorylist').replaceWith('<input type="text" name="category">');
});
但是,当选择变为输入,$_POST['category']
是不存在的,当我在表单提交倾倒$_POST
。为什么这样?
最好隐藏两个元素,选择和输入HTML,使用最初隐藏的输入(使用CSS)。然后使用jQuery的'.hide()'和'.show()'进行交换。无论隐藏哪个元素都不会包含在POST中。 – 2012-01-28 23:48:04
@甜菜根 - 甜菜根是的,它的作品:)嗯,但我想知道为什么这不起作用。 – Michelle 2012-01-28 23:56:23
我不知道。这并不明显。你可以尝试'.replaceWith('')'(在两个地方)。即。添加一个结束'/'到标签。可能没有效果,但值得尝试。 – 2012-01-29 01:06:23