【发布时间】:2016-01-29 03:56:06
【问题描述】:
所以,我的网站上有一个搜索表单,它是 GET 提交给第三方网站的。其中一个输入值用于细分名称,第三方要求它是带有空格的 + 符号的细分名称。因此,我的值正在被解析并用 + 替换空格,但是,在提交时,这些值会被浏览器 urlencoded 并且反过来不会被第 3 方解析。我的第一个想法是它们是不通过不解码他们的价值来完成他们的工作......但在我开始处理他们的客户支持的痛苦过程之前,我宁愿先在这里检查一下,看看是否有办法解决它。
编辑:这是我的代码(网址已被删除)
<form action="IDXBroker" method="GET">
<h2>IDX Quick Search</h2>
<div class="element">
<label for="pt">Property Type</label>
<select name="pt" id="pt">
<option value="all">All</option>
<option value="1" selected="selected">Residential</option>
<option value="2">Commercial</option>
<option value="3">Lots and Land</option>
<option value="4">Rental</option>
<option value="5">Multi-Family</option>
</select>
</div>
<div class="element" ng-controller="searchCtrl" class="city-search">
<label for="city">City/Subdivision</label>
<input type="text" ng-model="searchTerm" ng-change="setShowResults()"/>
<ul class="city-results" ng-show="showResults && searchTerm.length >= 3">
<li ng-repeat="item in results | stringSearch:searchTerm"><a href="#" ng-click="selectCity(item)">{{item.data}}</a></li>
<li ng-show="(results | stringSearch:searchTerm).length === 0 && searchTerm.length >= 3">No Results Found</li>
</ul>
<input type="hidden" name="{{searchType}}" value="{{searchTermValue.split(' ').join('+')}}" />
</div>
<div class="element">
<label for="lp">Min Price</label>
<input id="lp" name="lp" type="number" value="200000" />
</div>
<div class="element">
<label for="hp">Max Price</label>
<input id="hp" name="hp" type="number" />
</div>
<div class="element">
<label for="bd">Min Bedrooms</label>
<input id="bd" name="bd" type="text" />
</div>
<div class="element">
<label for="tb">Max Bedrooms</label>
<input name="tb" type="text" />
</div>
<input type="hidden" name="srt" value="newest" />
<div class="buttons">
<input type="submit" value="Search Now" />
</div>
</form>
【问题讨论】:
-
你能给我们一些代码吗?
-
表单是如何被序列化的,你是这样做的还是只是在提交表单时让浏览器这样做?
-
我让浏览器来做,但没有办法解决这个问题,是吗?似乎无论我事先尝试做什么,网址编码或用 + 替换空格,它都可以做到
标签: javascript html angularjs forms