比方說,我有這樣的形式:某種形式的數值()
<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