我如何控制什么表单字段提交与jQuery/JavaScript

How do I control what form fields get submitted with jQuery/JavaScript?

本文关键字:提交 字段 jQuery JavaScript 表单 什么 何控制 控制      更新时间:2023-09-26

我有一个搜索表单,当它被提交,它去别人的搜索网站。在我的形式,我给用户选项来选择。例如,选择搜索我的网站,还是外部网站。他们可以通过选择单选按钮来选择。

这是我的问题:当搜索外部站点时,因为它也在查询中提交单选按钮,搜索不起作用。它期望的是?SEARCH=Air+Jordan,但得到的是?inlineRadioOptions=Catalog&SEARCH=Air+Jordan。这会在外部站点抛出错误。

有没有办法,我可以提交这个没有单选按钮?下面是我目前使用的代码:

<form name="catsearchform37675" id="sForm" method="post" action="">
<div style="margin-bottom: 5px;">
<label class="radio-inline">
<input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="Catalog" onclick="$('.search_textField').attr({name:'searcharg',id:'searcharg'});$('#searchtype').val('t');$('#sForm').attr({action:'http://www.searchlocal.com/ch~S17/X',target:'_blank',method:'GET'});$('#hiddenField').append('<input type=''hidden'' name=''searchtype'' id=''searchtype'' value=''t'' />');" /> Catalog
</label>
<label class="radio-inline">
<input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="Website" onclick="$('.search_textField').attr({name:'CAT_Search',id:'CAT_Search'});$('#sForm').attr({action:'/Default.aspx?SiteSearchID=2960&amp;ID=/search-results',target:'self',method:'POST'});" checked="checked" /> Website
</label>
</div>
<div id="hiddenField"></div>
<div class="clearfix"><input type="text" id="CAT_Search" name="CAT_Search" placeholder="Search" hidefocus="true" style="outline: none medium;" class="search_textField" /> <input type="submit" class="search-btn" value="Search" /></div>
</form>        

正如在评论中指出的那样,您必须将单选按钮移出表单。

你可以在表单中添加一个事件"onsubmit",并在提交前禁用单选输入:

<form onsubmit="$('input[name=inlineRadioOptions]').prop('disabled',true);return true;" name="catsearchform37675"
  id="sForm" method="post" action="">
<div style="margin-bottom: 5px;">
    <label class="radio-inline">
        <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="Catalog"
               onclick="$('.search_textField').attr({name:'searcharg',id:'searcharg'});$('#searchtype').val('t');$('#sForm').attr({action:'http://www.searchlocal.com/ch~S17/X',target:'_blank',method:'GET'});$('#hiddenField').append('<input type=''hidden'' name=''searchtype'' id=''searchtype'' value=''t'' />');"/>
        Catalog
    </label>
    <label class="radio-inline">
        <input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="Website"
               onclick="$('.search_textField').attr({name:'CAT_Search',id:'CAT_Search'});$('#sForm').attr({action:'/Default.aspx?SiteSearchID=2960&amp;ID=/search-results',target:'self',method:'POST'});"
               checked="checked"/> Website
    </label>
</div>
<div id="hiddenField"></div>
<div class="clearfix"><input type="text" id="CAT_Search" name="CAT_Search" placeholder="Search" hidefocus="true"
                             style="outline: none medium;" class="search_textField"/> <input type="submit"
                                                                                             class="search-btn"
                                                                                             value="Search"/></div>

这里有一个jsfield