我想一個基本的:如何讓Zend Decorator允許默認值?
<input type="text" />
而且我想的默認值來清除,當用戶把一個值(kinda like this)。如果默認值返回onBlur,那將是理想的。
我不要想要提交默認值,如果他們離開它,然後點擊提交。
我使用Zend生成表單,想象我的解決方案可以完全適合Zend表單裝飾器。
我找不到任何現有的,所以我想問:
你所說的設計師嗎?或者有什麼能幫助我做出一個?
我想一個基本的:如何讓Zend Decorator允許默認值?
<input type="text" />
而且我想的默認值來清除,當用戶把一個值(kinda like this)。如果默認值返回onBlur,那將是理想的。
我不要想要提交默認值,如果他們離開它,然後點擊提交。
我使用Zend生成表單,想象我的解決方案可以完全適合Zend表單裝飾器。
我找不到任何現有的,所以我想問:
你所說的設計師嗎?或者有什麼能幫助我做出一個?
好吧,我已經建立了一個裝飾,讓我實現jquerypluginOlolo公佈。 它檢查以查看是否元件具有標籤集,以及如果這樣做,默認爲:
require_once 'Zend/Form/Decorator/Abstract.php';
class Application_Form_Decorator_DefaultEnabledInput extends Zend_Form_Decorator_Abstract
{
private $attribs = array();
public function render($content)
{
$element = $this->getElement();
if(get_class($element) != 'Zend_Form_Element_Text') throw new Exception("Application_Form_Decorator_DefaultEnabledInput only works on text fields");
$element->setAttrib('type', 'text');
$element->setAttrib('name', htmlspecialchars($element->getName()));
$element->setAttrib('value', htmlspecialchars($element->getValue()));
$attribs = '';
$default = $element->getLabel();
if($default)
{
$element->setAttrib('rel', $default);
$element->setAttrib('title', $default);
$class = $element->getAttrib('class');
$element->setAttrib('class', "$class hasDefault");
$default = "";
}
foreach($element->getAttribs() as $key => $val) $attribs .= "$key='$val' ";
return "<input $attribs/>";
}
}
它允許我來定義(使用setLabel)形式對象的默認值。
$element = $this->createElement('text', 'suburb');
$element->setDecorators(array('DefaultEnabledInput'));
$element->setLabel('enter suburb here');
$this->addElement($element);
所有我需要做的是確保查詢和插件都包含在頁面上,而這段代碼:
$(document).ready(function() {
// default values
$('.hasDefault').each(function(){
$(this).defaultValue();
});
});
然後在模板中,我可以顯示像對象這個:
<?= $this->form->getElement('suburb') ?>
只要使用相應的jQuery插件:defaultvalue
chrome抱怨說這個頁面是惡意軟件... – 2010-08-02 01:36:10
它以後工作得很好 - 肯定是一個糟糕的廣告或一些東西 – 2010-08-03 02:16:15
就像@Oloolo說的那樣,用jquery來說明。 而且,爲了防止存儲默認值,請在控制器中檢查它,或者爲此寫一個自定義驗證器。 – 2010-07-29 15:15:16