Javascript подтвердить удаление - если нет, не отправьте форму? Codeigniter - PullRequest
2 голосов
/ 04 августа 2011

Есть ли фрагмент Javascript, который не дает кнопке отправки формы выполнить функцию

Я использую платформу CodeIgniter, которая использует шаблон MVC.

Поэтому, когда вы нажимаете кнопку, она вызывает функцию контроллера, которая затем вызывает функцию модели и т. Д.

Я пытался использовать различные вещи в Javascript, в том числе возврат, возвращение истории.Есть ли что-нибудь, что остановит какое-либо событие?

Вот мой код:

function confirmation() {
    var answer = confirm("Delete Record?")
    if (answer)
    {

    }
    else
    {       //reloads current page - however it still continues to function
        window.redirect("http://localhost/midas/index.php/control_panel/user_records");
    }
}

Он продолжает выполнять функцию, если я говорю «Отмена».Есть ли способ остановить браузер?

Это мой php-код:

//js = is a variable which stores the javascript code
echo form_submit('view','View', $js);

Это создает вывод html следующим образом:

<input type="submit" onclick="confirmation()" value="View" name="view">

Ответы [ 7 ]

4 голосов
/ 04 августа 2011

Вам нужно поместить событие javascript в тег формы и использовать onSubmit вместо onClick, также вам не нужны внешние js для этого.

<form action="url/to/form" onSubmit="return confirm('are you sure?')">

</form>
2 голосов
/ 04 августа 2011
function confirmation() {
  var answer = confirm("Delete Record?")
  if (answer) {

  } else {
    //reloads current page - however it still continues to function
    return false;
  }      
}

Возможно, возвращение false в метод остановит отправку формы. Зависит от того, как вы вызываете функцию подтверждения.

2 голосов
/ 04 августа 2011

На кнопке, вызывающей POST .. затем вызовите функцию для события OnClick для этой кнопки. Пусть эта функция вернет true, чтобы продолжить POST, или вернет false, чтобы отменить действие.

1 голос
/ 04 августа 2011

Попробуйте добавить return false; в конце вашего else заявления после вашего window.redirect.

Редактировать:

После просмотра вашего onclickкод события Я бы предложил изменить ваш onclick, чтобы он выглядел примерно так:

<input type="submit" onclick="confirmation(); return false;" value="View" name="view">
0 голосов
/ 01 августа 2012

Я создаю помощник вида и что-то делаю для этого

function delete_button($id)
{
  $button = form_open(current_url().'/delete');
  $button .= form_hidden('id', $id);
  $button .= form_submit(array(
    'name' => 'delete', 
    'onclick' => "return confirm('are you sure you wish to delete?');"
  ), 'Delete');
  $button .= form_close();
  return $button;
}

тогда, на мой взгляд, я буду использовать <?= delete_button($row->id) ?> для визуализации необходимой формы и отправки (удаления) кода кнопки. так как метод javascript confirm() возвращает логическое значение, мы можем просто return метод, поскольку он вернет false, когда пользователь отменяет действие в диалоговом окне подтверждения, и, естественно, событие щелчка, которое returns false; будет препятствовать его продолжению. к действию формы.

0 голосов
/ 01 августа 2012

PHP-код:

$attributes = array('id' => 'formId','onsubmit'=>'return validate()');
echo form_open('controller', $attributes);

, где validate () - функция JavaScript, вызываемая при отправке.И если он вернет false, форма не будет отправлена.: -)

0 голосов
/ 26 июля 2012

с использованием помощника формы codeigniter это будет:

echo form_open('url/to/form', array('onsubmit'=>'return confirm(\'use triple escape to escape special chars like \\\'quotes\\\'. \')'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...