我需要标记一个名为brandId的复选框
<input type="checkbox" name="lastBrandId" id="lastBrandId" value="1">
当我选中该复选框时,我会触发另一个jQuery,以取回并填充序列号字段:
<input name="data[Brand][serialNumber]" type="text" id="serialNumber">
如果选中该复选框,则不希望触发下面的cakephp 2 get方法:
echo $this->Js->get('#BrandId')->event('change', $this->Js->request(
$ajaxUrl,
array(
'update' => '#form-ajax',
'evalScripts' => true,
'before'=>"$('#loading').show();",
'complete'=>"$('#loading').hide()",
'async' => true,
'method' => 'post',
'data' => $this->Js->serializeForm(array('isForm' => false, 'inline' => true)),
'dataExpression' => true,
)
));
在这种情况下,我看不到可以使用哪个变量。我可以用JavaScript代码封装php代码吗?
我尝试了包含cakephp ajax请求的php代码,但没有停止ajax请求:
if(!empty($this-request-data['lastBrandId']))
还有其他方法吗?
答案 0 :(得分:1)
我无法测试它,但是也许您可以使用(格式化以查看其逻辑):
'before'=>"
if ($(this).is(':checked')) {
return false;
} else {
$('#loading').show();
return true;
}",
这个想法是return false应该停止ajax调用。
我个人不再使用JsHelper。外部.js文件更易于调试,并且可以缩小。