如何根据两个是/否单选选项将值传递给隐藏字段

Posted

技术标签:

【中文标题】如何根据两个是/否单选选项将值传递给隐藏字段【英文标题】:How to pass value to hidden field based on two Yes/No radio selections 【发布时间】:2020-04-26 07:38:46 【问题描述】:

我们有一个包含两个是/否问题的表格:

问题 1:是/否

问题 2:是/否

我们想在表单提交时根据以下四种场景给隐藏字段“leadSource”传递一个值:

    Q1=是; Q2=是隐藏的;字段名称“leadSource”值 =“A” Q1=是; Q2=无隐藏;字段名称“leadSource”值 =“B” Q1=否; Q2=是隐藏的;字段名称“leadSource”值 =“C” Q1=否; Q2=无隐藏;字段名称“leadSource”值 =“D”

如何在 jQuery 中对四种不同的场景进行编码,以便将值传递给隐藏字段?

    <form id="addLeadSource">
    <input type="hidden" name="leadSource" value="" id="leadSource" class="leadSource">

    <div class="form-group">
     <label class="labeltext">Would you say yes or no to this first question?</label><br>
     <div class="form-check-inline">

      <label class="Q1YesLabel">
      <span class="radiotextsty">Yes</span>
      <input type="radio" class="Q1Yes" name="Q1" value="Yes" id="Q1Yes" required>
      <span class="checkmark"></span>
      </label>        
      <label class="Q1NoLabel"><span class="radiotextsty">No</span>
      <input type="radio" name="Q1" value="No" id="Q1No" required>
      <span class="checkmark"></span>
      </label>
      </div>
     </div>

     <div class="form-group" id="Q2">
     <label class="labeltext">How about this one?</label><br>
     <div class="form-check-inline">

     <label class="Q2YesLabel"><span class="radiotextsty">Yes</span>
     <input type="radio" class="directly_sourced" name="directly_sourced" value="Yes" required>
     <span class="checkmark"></span>
     </label>        
     <label class="Q2NoLabel"><span class="radiotextsty">No</span>
     <input type="radio" name="directly_sourced" value="No" required>
     <span class="checkmark"></span>
     </label>
     </div>
     </div>

     <button type="submit" class="btn btn-primary">Submit</button>

     </form>

    $(document).ready(function() 
$('input[type="radio"]').click(function() 
       if($(this).attr('id') == 'Q1No') 
            $('#Q2').show();           
       
   );
        );

      $(document).ready(function() 
             $('input.ZoomInfo_sourced[type=radio]').change(function()  //change event by class
              if (this.value == 'Yes - ZoomInfo Sourced') 
                  $(this.ClassName[type=hidden]).val("Zoominfo - Seller");
                  alert("Zoominfo - Seller");
              
              else if (this.value == '1') 
                 $(this.source[type=hidden]).val("Yes");
              
          );
        );

$(document).ready(function() 
    $("#addLeadSource").submit(function(event)
  var source = document.getElementById("leadSource").innerText;
    alert(source);
    );
);

我从这里开始:https://jsfiddle.net/Codewalker/mqzdvyha/

【问题讨论】:

下面的答案解决了你的问题吗? 它帮助我想出了解决方案。感谢发帖。 【参考方案1】:

可能有更好的方法来写这个,但我认为这样的逻辑很容易遵循。

  function testme() 
     if ($('[name="Q1"]:checked').val() == 'Yes') 
        console.log('q1 is yes');
        if ($('[name="directly_sourced"]:checked').val() == 'Yes') 
           console.log('q2 is yes');
           return 'A';
         else 
           console.log('q2 is no');
           return 'B';
        
      else 
        console.log('q1 is no');
        if ($('[name="directly_sourced"]:checked').val() == 'Yes') 
           console.log('q2 is yes');
           return 'C';
         else 
           console.log('q2 is no');
           return 'D';
               
     
  

基本上只是分支 if else 语句很好地遵循了您的问题的布局。如果这很重要,它确实假设不回答是否...使用此功能,您可以在提交表单时拥有$('#leadSource').val(testme());

【讨论】:

【参考方案2】:

这是我想出的适合我的解决方案:

    $("#theForm").submit(function(event) 

      if ($('#Q1Yes').is(':checked') && $('#Q2Yes').is(':checked')) 
        $("#source").val("Scenario 1 and 2");

       else if ($('#Q1Yes').is(':checked') && $('#Q2No').is(':checked')) 
        $("#source").val("Scenario 1 and 2");

       else if ($('#Q1No').is(':checked') && $('#Q2Yes').is(':checked')) 
        $("#source").val("Scenario 3");

       else 
        $("#source").val("Scenario 4");
      

    );

【讨论】:

以上是关于如何根据两个是/否单选选项将值传递给隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从字段传递给 Odoo 13 中的向导?

Ruby如何将值从单选按钮传递到控制器方法

如何将值从 DB 传递到单选按钮组?

如何将值传递给休眠的sqlRestriction?

如何将值从其他活动传递给 viewpager 片段?

如何将值从 NSTabViewController 传递给子视图?