0
我想更改Zend_Form的默認行爲,以便無論何時提交按鈕被點擊,表單提交被阻止,並調用任意的JavaScript函數。這將爲網站上的所有表單完成,但實際調用的JS函數可能會從表單更改爲表單。更改Zend_Form的行爲來提交時調用JS函數
什麼是最適當的方法來做到這一點?通過提交元素上的自定義裝飾器?你能提供一些提示嗎?
謝謝。
我想更改Zend_Form的默認行爲,以便無論何時提交按鈕被點擊,表單提交被阻止,並調用任意的JavaScript函數。這將爲網站上的所有表單完成,但實際調用的JS函數可能會從表單更改爲表單。更改Zend_Form的行爲來提交時調用JS函數
什麼是最適當的方法來做到這一點?通過提交元素上的自定義裝飾器?你能提供一些提示嗎?
謝謝。
在我看來,Zend_Form不應該需要或渴望任何關於JavaScript的知識。我會向表單中添加一個類,並使用該類名作爲應用JavaScript的鉤子。
試想一個形式:
<form class="validate-me">
<!-- //elements -->
<input type="submit">
</form>
然後,您可以與給定的類名申請你的JavaScript到表單(僞JS,使用圖書館)
var el = document.getElementsByClassName('validate-me')[0];
el.on('submit', function(e){
//validate the form, stop the event if invalid
});
如果你想添加額外的標記或屬性而不是這種方法,那麼你一定需要看看裝飾器。
+1爲不顯眼的JS。 ;-) – 2010-10-04 10:53:08
+1也是我喜歡你的方法。你會建議使用裝飾器添加這個類標籤,然後爲每種類型的表單提交有不同類型的裝飾器? – Dario 2010-10-04 11:03:51
Zend Form已經有一個裝飾器(HtmlTag我認爲)來渲染它自己的