Cakephp 2 предотвращает использование ajax, если установлен флажок

Мне нужно отметить один флажок с именем brandId,

<input type="checkbox" name="lastBrandId" id="lastBrandId" value="1">

Когда я устанавливаю флажок, я запускаю другой jQuery, чтобы вернуть и заполнить поле серийного номера:

<input name="data[Brand][serialNumber]" type="text" id="serialNumber">

Если флажок установлен, я не хочу, чтобы запускался метод получения cakephp 2, указанный ниже:

   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,
        )
    ));

Я не вижу, какую переменную можно использовать в этом случае. Могу ли я заключить PHP-код в JavaScript-код?

Я пробую php-код, содержащий запрос ajax cakephp, но не остановил запрос ajax:

if(!empty($this-request-data['lastBrandId']))

Есть другой способ?

0
0
30
1

Ответы 1

Я не могу это проверить, но, возможно, вы могли бы использовать (отформатировано, чтобы увидеть логику):

'before'=>"
if ($(this).is(':checked')) {
   return false;
} else {
   $('#loading').show();
   return true;
}",

Идея состоит в том, что return false должен остановить вызов ajax.

Я лично отказался от использования JsHelper. Внешние файлы .js легче отлаживать, и их можно минимизировать.

Другие вопросы по теме