我有一個包含一些動態元素的表單。這些基本上都是文本輸入框,其中將包含帶有按鈕的電話號碼,以便刪除該元素。 另一個按鈕添加一個新元素,最後一個將其保存到數據庫。 我想要做的是「標記」已更改,已刪除或新號碼的號碼。 因此,我可以在數據庫上進行更新,插入或刪除操作,因爲我不想刪除所有數據,並且每次都在數據庫中插入所有數據。使用jquery隱藏表單元素而不提交?
delDisaNumber是不是我想要的...我想隱藏的元素,所以我可以標記爲刪除。但是這樣做會使表單看起來像表單被提交。另一方面,使用.remove可見地表現出我想要的樣子,但完全刪除了不是我想要的元素(我希望隱藏它)。
以下是迄今爲止有關的代碼。 (這是寫在jQuery和PHP使用kohana)
<script type="text/javascript">
var disaId = 1;
function setModified(element){
$(element).attr('name', 'update');
}
function delDisaNumber(element){
$(element).prev('name','delete');
$(element).parent().remove(); /* has the effect I want, but removes the element */
// $(element).parent().hide() /* this is what I want but submits the form */
}
function addDisaNumber(){
$("#disa_numbers").append('<li id="disa_num"'+disaId+'><input /><button onClick="delDisaNumber">X</button></li>');
$disaId++;
}
</script>
...
<div id="disa">
<?php
echo form::open("edit/saveDisaNumbers/".$phone, array("class"=>"section", "id"=>"other"));
echo form::open_fieldset(array("class"=>"balanced-grid"));
?>
<ul class="fields" id="disa_numbers">
<?php
$disaId = 1;
foreach ($disa_numbers as $disa_number){
$disaid_name = 'disa_num'.$disaId;
echo '<li id="'.$disaid_name.'">';
echo form::input("disa".$disaId, $disa_number->cid_in, "onKeyDown='setModified(this)'");
echo form::button("",'X','onClick="delDisaNumber(this)" class="button image"');
echo "</li>";
$disaId++;
}
?>
</ul>
<button type="button" onclick="addDisaNumber()">Add another number</button>
<?php
echo form::submit('submit', 'Save');
echo form::close();
?>
</div>
編輯:似乎表單::按鈕不按預期行事。如果我用echo'X'替換它,它不會發布表單。
聽起來不錯,請給出一個更完整的例子嗎? – Matt 2010-02-22 03:08:04