Как нажать на одну кнопку и, если форма сохранена, нажать на другую

0

У меня есть 3 кнопки и 1 форма. 1-я кнопка - новая кнопка. Кнопка, которую я хочу добавить. Когда я нажимаю на эту новую кнопку, я хочу, чтобы jQuery нажал следующую кнопку: 2-я кнопка: Сохранить - при нажатии этой кнопки необходимо добавить функцию:

if($("#email").val().trim().length>0 && $("#customer_firstname").val().trim().length>0 && $("#customer_lastname").val().trim().length>0 )   {

если это верно - форма успешно сохраняется. jQuery нужно нажать на третью кнопку (если это неверно, остановитесь здесь. Другие js покажут ошибки в форме): 3-я кнопка: Отправить заказ - после нажатия на нее ничего не нужно. Другие js сделают все остальное.

Другим способом будет использование кнопки "сохранить", и если это действительно так, нажмите "отправить кнопку" - может быть, это больше - решение?

    <p class="orderbutton">
        <input type="submit" class="order-button-opc" id="order-button" value="Order Button">
     </p>
    <p class="submit">
     <input type="submit" class="exclusive button" name="submitAccount" id="submitAccount" value="{l s='Save'}" />
    </p>
    <p class="cart_navigation" id="cart_navigation">
    <input type="submit" value="I confirm my order" class="extraorderbutton">
    </p>

Я пробую это:

<script>
$(document).ready(function () {
var firstFormValid = false;
var isFormValid = false;
$('#order-button').click(function(){
    if(anycondition)
       firstFormValid = true;
});

$("#submitGuestAccount").click(function () {
     if(firstFormValid ) {
     if($("#email").val().trim().length>0 &&$("#customer_firstname").val().trim().length>0 && $("#customer_lastname").val().trim().length>0 )  {
         isFormValid = true;     
     } else isFormValid = false;
     } else firstFormValid =false; 
}); 

$("#order-button").click(function () {
   if(isValid && firstFormValid)
       $('#order-button').submit()
});
 });
  </script>

Но я получаю ошибку: Изображение 174551

Теги:

2 ответа

0

Вместо того, чтобы просто отлаживать/бросать какой-то код на вас, вы можете приблизиться к этому лучше, работая над каждой из областей отдельно, вероятно, поможет в этом и в будущем?

  1. Объявление элементов/селекторов
  2. Функция проверки
  3. Функция "проверка"
  4. Функция "сохранить"
  5. Обработчики событий.

Сказать,

1) Объявлять элементы/селектора

var _inputemail = $("#email"),
_inputfirstname =$("#customer_firstname"),
_inputlastname = $("#customer_lastname"),
_button_check = $("#checkbutton"),
_button_send = $("#sendbutton"); /* hidden initially in css */

2) Создать функцию проверки

function isValid() {
  var is=false;
   /* add in the checks */
  if(_inputemail.val().length>0) { is=true; }
  /* return true or false */
  return is;
}

3) функция "проверить"

function checkForm() {
  /* use the validate function */
  if(isValid()) {
   /* show the 'save' button */
   _button_send.show();
  }
}

4) сформировать функцию "отправить"

function sendForm() {
  /* sendform here */
  if(isValid()) {
   /* we could run the validate again if we like  */
  }
}

5) Обработчики событий

_button_check.on("click", checkForm);
_button_send.on("click", sendForm);

/* now we  have separate functions we can check/send 
  the form from other events too 

 eg. Checking as we type */
_inputlastname.on("keyup",checkForm);

В настоящее время есть несколько компонентов для повторного использования/простого управления

будут некоторые вещи, чтобы сортировать в этом коде, но надежда помогает в чем-то! (?)

  • 0
    Спасибо @Rob Sedgwick за ответ. Очень интересные вещи Я попытаюсь понять эту вещь, а затем попробую что-то написать для моего случая.
  • 0
    @ user3388282, хорошие вещи. Да, я нахожу, что разрушение вещей помогает в будущем, когда нам нужно сделать больше вещей - например, напечатать сообщения проверки правильности, мы можем просто войти в функцию isValid чтобы сделать улучшения, зная, что все другие части остаются неизменными. Обязательно, если вы работаете в команде.
0

Использовать эту надежду поможет.

$(document).ready(function () {
    var firstFormValid = false;
    var isFormValid = false;
    $('#newbutton').click(function(){
        if(anycondition)
           firstFormValid = true;
    });

    $("#savebutton").click(function () {
         if(firstFormValid ) {
         if($("#email").val().trim().length>0 &&$("#customer_firstname").val().trim().length>0 && $("#customer_lastname").val().trim().length>0 )  {
             isFormValid = true;     
         } else isFormValid = false;
         } else firstFormValid =false; 
    }); 

    $("#sendbutton").click(function () {
       if(isValid && firstFormValid)
           $('#FORMID').submit()
    });
});
  • 0
    Этот код наверняка не запустится, потому что в нем отсутствуют некоторые скобки
  • 0
    спасибо @ Huangism
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню