添加其他选项的隐藏输入字段的值

时间:2019-02-09 14:46:55

标签: javascript php forms

在此网站上的其他人表示感谢之后,我以这段代码结尾。现在,在下面的提交表单的代码中,当显示结果时,我希望隐藏的输入字段的值代替Other。

<form action="" method="post">
    <div class="row">
        <div class="col-sm-8 col-sm-offs et-2"> 
            <select class="form-control" name="country" id="country" required >
                <option value="">Please select your country</option>
                <option value="A">Country A</option>
                <option value="B">Country B</option>
                <option value="C">Country C</option>
                <option value="Other">Other</option>
            </select>

             <input type ="text" id="country_other" style="display:none">

                <button type="submit" class="btn btn-gpsingh">Next</a>
             </div>
     </div>
  </form>

<script>
$("#country").change(function(){

    var value = this.value;
    if(value =='Other')
    {
        $("#country_other").show();
        $("#country_other").attr('required', false);


    }
     else
    {
       $("#country_other").hide();  
       $("#country_other").val('');
       $("#country_other").attr('required', false);
    }    
});
</script>

1 个答案:

答案 0 :(得分:0)

如果我正确理解,您可以尝试的是如果所选值为name并从SELECT菜单中删除other属性并分配name属性而不是text输入元素-提交表单时,POST数组中名称为country的项目将来自文本字段,而不是选择菜单...

$('#country').change(function(){
    if( this.value == 'Other' ){
        $('#country_other').show();
        $('#country_other').attr('required', false);

        /* remove name from select & add to text field */
        $('#country_other').attr('name', $(this).attr('name') );
        $(this).removeAttr('name');
    } else {
       $('#country_other').hide();  
       $('#country_other').val('');
       $('#country_other').attr('required', false);

       /* remove name attribute from text field and assign back to select menu */
       $(this).attr('name', $('#country_other').attr('name') );
       $('#country_other').removeAttr('name');
    }    
});