试图在表单中添加一个条件逻辑规则?

时间:2017-04-05 13:03:23

标签: javascript css forms logic conditional

我有这个表单我正在尝试添加条件逻辑。我在网上找到了一个教程,但是我的js仍然不是那么强。你介意看看我弄乱了吗?我确实设法让字段隐藏起来。但这更像是一个css的事情。我过去常用的教程was this one.



$(document).ready(function() {
  var wings = false;
  //Inputs that determine what fields to show
  var wings50 = $('#live_form input:checkbox[name=wings50]');
  var wings25 = $('#live_form input:checkbox[name=wings25]');

  //Wrappers for all fields
  var div_wings50_parent = $('#live_form #div_wings50');
  var div_wings25_parent = $('#live_form #div_wings25');
  var all = bad.add(div_wings50_parent).add(div_wings25_parent);

  wings50.change(function() {
    var value = this.value;
    all.addClass('hidden'); //hide everything and reveal as needed

    if (value == '50OFAKIND') {
      div_wings50_parent.removeClass('hidden');
    } else if (value == '25OFAKIND') {
      div_wings25_parent.removeClass('hidden');
    }

  });
});

.hidden {
  display: none;
}

<!-- Start Formoid form-->
<link rel="stylesheet" href="gramdslam_files/formoid1/formoid-flat-yellow.css" type="text/css" />
<link rel="stylesheet" href="gramdslam_files/formoid1/bootstrap-iso.css" type="text/css" />
<script type="text/javascript" src="gramdslam_files/formoid1/jquery.min.js"></script>
<script type="text/javascript" src="gramdslam_files/formoid1/conditional.js"></script>
<form class="formoid-flat-yellow" id="#live_form" style="background-color:#ffffff;font-size:14px;font-family:'Lato', sans-serif;color:#666666;max-width:480px;min-width:150px" method="post">
  <div class="title">
    <h2>GRAND SLAM</h2>
  </div>
  <div class="element-select" title="Define what pizza options you want. "><label class="title">PIZZA OPTIONS<span class="required">*</span></label>
    <div class="large"><span><select name="select" required="required">

		<option value="2 Cheese">2 Cheese</option>
		<option value="2 Pepporoni">2 Pepporoni</option>
		<option value="1 Cheese & 1 Peporoni">1 Cheese & 1 Peporoni</option></select><i></i></span></div>
  </div>


  <div class="element-select" title="Select how you will be ordering your wings."><label class="title">SELECT WING OPTION<span class="required">*</span></label>
    <div class="large"><span><select name="select1" required="required">
    <option value="Select">Please Select</option>
		<option value="50OFAKIND">50 OF A KIND</option>
		<option value="25OFAKIND">SPLIT 25/25 OF A KIND</option></select><i></i></span></div>
  </div>

  <div class="element-select hidden" title="Select 1 the following."><label class="title">SELECT ONE<span class="required">*</span></label>
    <div class="large"><span><select name="select2" required="required">
		<option value="50 Plain">50 Plain</option>
		<option value="50 Buffalo">50 Buffalo</option>
		<option value="50 BBQ">50 BBQ</option></select><i></i></span></div>
  </div>

  <div class="element-multiple hidden" title="Select 1 the following."><label class="title">SELECT TWO<span class="required">*</span></label>
    <div class="large"><select data-no-selected="Nothing selected" name="multiple[]" multiple="multiple" required="required">
		<option value="25 Plain">25 Plain</option>
		<option value="25 Buffalo">25 Buffalo</option>
		<option value="25 BBQ">25 BBQ</option></select></div>
  </div>
  <div class="element-number" title="How many Grand Slam packages do you need? 1 feeds 8."><label class="title">How many Grand Slam packages do you need? 1 feeds 8.<span class="required">*</span></label><input class="small" type="text" min="1" max="100" name="number" required="required" value="" /></div>
  <div class="element-textarea" title="If you have any special instructions for your order, please add them here. "><label class="title">Add Special Instructions for your order here.</label><textarea class="small" name="textarea" cols="20" rows="5"></textarea></div>
  <div class="submit"><input type="submit" value="ADD TO ORDER" /></div>
</form>
<p class="frmd"><a href="http://formoid.com/v29.php">contact us form</a> Formoid.com 2.9</p>
<script type="text/javascript" src="gramdslam_files/formoid1/formoid-flat-yellow.js"></script>
<!-- Stop Formoid form-->
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

这里的主要问题是您的选择器。从这开始:

从表单中的ID属性中删除#

<form class="formoid-flat-yellow" id="live_form" style="background-color:#ffffff;font-size:14px;font-family:'Lato', sans-serif;color:#666666;max-width:480px;min-width:150px" method="post">

为输入提供唯一的ID或类

<select id="wings-input" name="select1" required="required">

更新jQuery选择器以选择正确的

var wings_input= $('#live_form #wings-input');

从现在开始,您可以正确添加条件。我已添加基本提醒,因此您可以看到其正常工作:https://jsfiddle.net/L6zjr92o/

答案 1 :(得分:0)

问题是选择器引用。检查此代码......

$(document).ready(function() {

  var selectWings = $("select[name='wings']");
  var select50 = $("select[name='wings50']");
  var select25 = $("select[name='wings25']");
  
  selectWings.change(function(){
    var val = selectWings.val();
    if(val=="50OFAKIND"){
      $("#parent_wings50").show();
      $("#parent_wings25").hide();
    }
    if(val=="25OFAKIND"){
      $("#parent_wings50").hide();
      $("#parent_wings25").show();
    }
  });
  
 
 
});
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Start Formoid form-->
<link rel="stylesheet" href="gramdslam_files/formoid1/formoid-flat-yellow.css" type="text/css" />
<link rel="stylesheet" href="gramdslam_files/formoid1/bootstrap-iso.css" type="text/css" />
<script type="text/javascript" src="gramdslam_files/formoid1/jquery.min.js"></script>
<script type="text/javascript" src="gramdslam_files/formoid1/conditional.js"></script>
<form class="formoid-flat-yellow" id="#live_form" style="background-color:#ffffff;font-size:14px;font-family:'Lato', sans-serif;color:#666666;max-width:480px;min-width:150px" method="post">
  <div class="title">
    <h2>GRAND SLAM</h2>
  </div>
  <div class="element-select" title="Define what pizza options you want. "><label class="title">PIZZA OPTIONS<span class="required">*</span></label>
    <div class="large"><span><select name="select" required="required">

		<option value="2 Cheese">2 Cheese</option>
		<option value="2 Pepporoni">2 Pepporoni</option>
		<option value="1 Cheese & 1 Peporoni">1 Cheese & 1 Peporoni</option></select><i></i></span></div>
  </div>


  <div class="element-select" title="Select how you will be ordering your wings." id="selectwings"><label class="title">SELECT WING OPTION<span class="required">*</span></label>
    <div class="large"><span><select name="wings" required="required">
    <option value="Select">Please Select</option>
		<option value="50OFAKIND">50 OF A KIND</option>
		<option value="25OFAKIND">SPLIT 25/25 OF A KIND</option></select><i></i></span></div>
  </div>

  <div class="element-select hidden" title="Select 1 the following." id="parent_wings50">
  <label class="title">SELECT ONE<span class="required">*</span></label>
    <div class="large"><span>
    <select name="wings50" required="required">
		<option value="50 Plain">50 Plain</option>
		<option value="50 Buffalo">50 Buffalo</option>
		<option value="50 BBQ">50 BBQ</option>
    </select><i></i></span></div>
  </div>

  <div class="element-multiple hidden" title="Select 1 the following." id="parent_wings25"><label class="title">SELECT TWO<span class="required">*</span></label>
    <div class="large">
    <select data-no-selected="Nothing selected" name="wings25" multiple="multiple" required="required">
		<option value="25 Plain">25 Plain</option>
		<option value="25 Buffalo">25 Buffalo</option>
		<option value="25 BBQ">25 BBQ</option></select></div>
  </div>
  <div class="element-number" title="How many Grand Slam packages do you need? 1 feeds 8."><label class="title">How many Grand Slam packages do you need? 1 feeds 8.<span class="required">*</span></label><input class="small" type="text" min="1" max="100" name="number" required="required" value="" /></div>
  <div class="element-textarea" title="If you have any special instructions for your order, please add them here. "><label class="title">Add Special Instructions for your order here.</label><textarea class="small" name="textarea" cols="20" rows="5"></textarea></div>
  <div class="submit"><input type="submit" value="ADD TO ORDER" /></div>
</form>
<p id="result"></p>
<p class="frmd"><a href="http://formoid.com/v29.php">contact us form</a> Formoid.com 2.9</p>
<script type="text/javascript" src="gramdslam_files/formoid1/formoid-flat-yellow.js"></script>
<!-- Stop Formoid form-->