您可以对该字段进行 AJAX 检查,当有人更改 is_manager 复选框的状态时。我在这个例子中使用了 JQuery。
在 Zend_Form_Element_Checkbox 上设置:
$is_manager->setAttrib('onchange', 'checkValue(this)');
比你有 JS:
<script language = "Javascript">
function checkValue(object){
var is_manager = $(object).is(':checked') ? 1 : 0;
jQuery.ajax({
url: '/default/index/ajax', //modul/controller/action
type: 'POST',
data: {is_manager: is_manager},
dataType: "json",
success: function(result){
if(result.status != 'OK')
alert(result.message);
}
});
}
</script>
在 IndexController 中,ajaxAction() 应该获取请求并发送 JSON 响应:
public function ajaxAction(){
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$is_manager = $this->_getParam('is_manager');
// DO THE OTHER STUFF/validation AND LOGIC HERE
// ...
// OR set success message and status = OK
$results = array(
'status' => 'error',
'message' => 'You will overwriting existing manager!'
);
$this->_response->setBody(json_encode($results));
}