如何基于单选按钮选择重定向表单

时间:2017-06-08 17:12:44

标签: javascript php html forms

我有一份登记表,检查他/她是否是我们的客户。如果用户选择,则会显示两个字段(客户编号和邮政编码)。但是,如果用户选择,我希望表单只是发送并转到下一页。

由于它现在正常工作,当用户选择时,表单在尝试提交时出错,因为客户编号+和邮政编码留空。

在单选按钮选择中重定向表单的最佳方法是什么?或者,如果用户选择否,是否可以预先填写客户编号+ zipcdoe字段?是否有可行的方法来重定向?

我的单选按钮代码:

Yes <input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="yesCheck"> No <input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="noCheck" onChange="OnChangeForm" value="epc">

JSFiddle: https://jsfiddle.net/7ycha0ge/

1 个答案:

答案 0 :(得分:1)

你对自己的案子并不十分具体,但我相信这三个可能性:

  1. 是你在javascript中验证字段的填充而不考虑你的输入是隐藏的,在这种情况下你应该重新访问你的代码,只有在字段可见或添加/删除时才会抛出错误根据无线电的选择完整地填写HTML中的字段。

  2. 您的服务器端代码总是希望填充未填充数据的参数,并且会引发错误。

  3. 请考虑使用这样的表单(带有novalidate属性):

  4. &LT; form novalidate&gt;&lt; /形式&GT;

    这样你就不会对浏览器验证不敏感,但你必须自己验证

    编辑:添加和删除元素的实时示例

    &#13;
    &#13;
    function yesnoCheck(resp) {
    
    var yes = '<div class="form-group">'+
            '<label for="account" class="col-sm-3 control-label">Account Number</label>'+
            '<div class="col-sm-9">'+
                '<input type="text" class="form-control" id="account" name="account" placeholder="Enter Account Number">'+
            '</div>'+
        '</div>'+
        
        '<div class="form-group">'+
            '<label for="lastname" class="col-sm-3 control-label">Zip Code</label>'+
            '<div class="col-sm-9">'+
                '<input type="text" class="form-control" id="zip" name="zip" placeholder="Enter Zip Code">'+
            '</div>'+
        '</div>';
        
       if(resp == 'yes') {
          $('#ifYes').append(yes);
       } else {
          $('#ifYes').html('');
       }
    
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <div class="section section-breadcrumbs">
    			<div class="container">
    				<div class="row">
    					<div class="col-md-12">
    						<h1>Register</h1>
    					</div>
    				</div>
    			</div>
    		</div>
            
    <div class="section">
      <div class="container">
          <div class="row">
    					<div class="col-sm-8 col-sm-offset-2">
                  <div class="panel panel-default">
                    <div class="panel-body">
                      <h2>Online Training Access</h2>
                      <p><em>We need to verify if you are a retailer first. Please enter your account number without spaces or dashes, or select 'no' if you are a consumer.</em></p><br>
                      
                      
    <form class="form-horizontal" role="form" id="my-account-form" method="post"  action="">
        <div class="col-sm-offset-3"></div>
    
    <div class="form-group">
        <label for="lastname" class="col-sm-3 control-label">Are you a retailer?</label>
            <div class="col-sm-9">
             Yes <input type="radio" onclick="javascript:yesnoCheck('yes');" name="yesno" id="yesCheck"> 
             No <input type="radio" onclick="javascript:yesnoCheck('no');" name="yesno" id="noCheck">
            </div>
    </div>
    
    <!-- the contents will only be added if yes -->
    <div id="ifYes">
    </div>
    
    </form>
    </div>
    </div>
    </div>
    </div>
    </div>
    &#13;
    &#13;
    &#13;