CakePhp 2 предотвращает ajax, если отмечен флажок - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно отметить один флажок с именем 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']))

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

1 Ответ

0 голосов
/ 15 сентября 2018

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

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

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

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

...