Форма запроса Отправить - PullRequest
       2

Форма запроса Отправить

0 голосов
/ 20 августа 2010

Я работаю с jQuery и после просмотра других вопросов не могу найти ответ на проблему, с которой столкнулся.Я пытаюсь проверить форму и отправить ее в одно действие.Это работает нормально, если я использую кнопку отправки, но я пытаюсь вызвать триггер из другой функции, которая не работает.

jQuery код:

$(document).ready(function(){
  $('#cmdSave').click(function (){
    if ($('#age').val() != $('#agechk').val()) {
      //Do something
    }
    else {
      //Set form varaible
      $('#frmactn').val('Save');
      //Call form submit
      $('#frmPrflDtls').submit();
    }
  });

  $('#frmPrflDtls').submit(function() {
    return vrfyDetails();
  });
});

html:

<form name="frmPrflDtls" id="frmPrflDtls" method="get" action="details.php">
  <input name="frmactn" id="frmactn" type="hidden" />
  <input name="agechk" id="agechk" type="hidden" value="Senior" />
  <input type="text" name="age" id="age" value="Senior" />

  <input type="button" id="cmdSave" value="Save" />
</form>

Так что, если я закомментирую функцию #cmdSave и поменяю тип кнопки, чтобы отправить все хорошо, но как есть, он только подтвердит ложь или ничего не сделает, но никогда не отправит.

Спасибоза любую помощь.

Ответы [ 2 ]

1 голос
/ 20 августа 2010

Вы должны сделать кнопку типа submit, а затем добавить свой конкретный код в обработчик отправки:

$('#frmPrflDtls').submit(function() {
  if ($('#age').val() != $('#agechk').val()) {
    //Do something
    return false; // This will prevent the form submission
  }
  else {
    //Set form variable
    $('#frmactn').val('Save');
    return vrfyDetails(); // This will allow the form submission
  }
});

и ваш HTML:

<form name="frmPrflDtls" id="frmPrflDtls" method="get" action="details.php">
  <input name="frmactn" id="frmactn" type="hidden" />
  <input name="agechk" id="agechk" type="hidden" value="Senior" />
  <input type="text" name="age" id="age" value="Senior" />

  <input type="submit" id="cmdSave" value="Save" />
</form>

иметь кнопку отправки, чтобы пользователи без JavaScript по-прежнему могли отправить форму.Также важно, чтобы также проверял на сервере , потому что пользователи могут легко обойти проверку JavaScript.

0 голосов
/ 20 августа 2010

Вы должны привязать событие к форме, а не к кнопке.

$(function(){
  $("#frmPrflDtls").submit(function(){
    if(form is ok){
      return true; // this will post your form
    }else{
      return false; // form will not be posted
    }
  });
});
...