Как получить значение переключателя для одной формы при динамическом создании нескольких форм - PullRequest
0 голосов
/ 16 октября 2019

У меня есть виджет, который создает мастера (шаги).

Каждый шаг имеет форму и может содержать переключатели. Переменная formname содержит имя текущей формы. Как я могу получить значение переключателя внутри этой формы? Не все формы будут иметь переключатели.

Это пример моего HTML-макета:

<div id="step-0" class="">
  <form id="step_0_form" method="post">
    <input type="number" class="formateninput form-control" name="aantal" value="1" min="1">
  </form>
</div>
<div id="step-1" class="">
  <form id="step_1_form" method="post">
    <input type="number" class="formateninput form-control" name="hoogte" value="100" min="60">
  </form>
</div>
<div id="step-2" class="">
  <form id="step_2_form" method="post">
      <input type="radio" id="Hout" name="Materiaal" value="Hout" >
      <input type="radio" id="Debond" name="Materiaal" value="Debond">
  </form>
</div>

И это мой код jquery на данный момент:

var ajaxInvoke = false;
$("#smartwizard").on("leaveStep", function(e, anchorObject, stepNumber, stepDirection) {

  if(ajaxInvoke == false){
    ajaxInvoke = true;

    var form_data = $("#step_"+ stepNumber +"_form").serialize();

    var formname = $("#step_"+ stepNumber +"_form");

    $.ajax({
      type:'post',
      url:"catalog/calcdiv.php",
      data:form_data,
      success:function(data){
         // indicate the ajax has been done, release the next step
         $("#smartwizard").smartWizard("next");
         ajaxInvoke = false;
      }
    });
    // Return false to cancel the `leaveStep` event
    return false;
  }
});

Я попробовал следующее:

var ajaxInvoke = false;
$("#smartwizard").on("leaveStep", function(e, anchorObject, stepNumber, stepDirection) {

  if(ajaxInvoke == false){
    ajaxInvoke = true;

    var form_data = $("#step_"+ stepNumber +"_form").serialize();

    var formname = $("#step_"+ stepNumber +"_form");

    $(formname).on("change" "input[type=radio]:checked", function(e){
      var val = $(this).val();
      console.log(val);
    });

    $.ajax({
      type:'post',
      url:"catalog/calcdiv.php",
      data:form_data,
      success:function(data){
         // indicate the ajax has been done, release the next step
         $("#smartwizard").smartWizard("next");
         ajaxInvoke = false;
      }
    });
    // Return false to cancel the `leaveStep` event
    return false;
  }
});

Но это ничего не показывает в моей консоли. Как я могу получить значение переключателя, щелкающего по текущему шагу в открытой в данный момент форме? $("#step_"+ stepNumber +"_form"); - соответствующий идентификатор формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...