我想提交的$ _GET请求之前编码特定的搜索领域。 我做的是在这一领域的应用encodeURIComponent方法()函数提交表单前
$('#frmMainSearch').submit(function() {
var field = $(this).find('#searchinput');
field.val(encodeURIComponent(field.val()));
});
问题是,一旦文本编码,该字段显示编码文本看起来有点怪。 有什么我可以做才能避免呢?
例如:I型你好你好&。 当我点击提交按钮会变成像喂26%的您好页面之前被刷新。 我想避免这种情况。
任何解决方案?
谢谢
我最近不得不解决这个同样的问题。 以下是我做的:
创建你想成为面向用户的,像这样的输入字段:
<input class="really-nice-looking-field" id="search-text-display" placeholder="Search for stuff..." type="text">
请注意,与画面上显示的领域, name
属性是专门省略。 这将保持search-text-display
领域走出提交的表单,所以你不必来通过未使用的参数。
创建一个隐藏字段,这是将实际用于提交,就像这样:
<input id="search-text" name="search_text" type="hidden">
捕捉从表单提交事件来填充隐藏字段提交表单之前,就像这样:
$('#site-search').submit(function() { $('#search-text').val( encodeURIComponent($('#search-text-display').val()) ); });
这将离开,而你的参数来通过逃脱,根据需要显示给用户不变的输入字段:
Parameters: {"utf8"=>"✓", "search_text"=>"hello%20%26%20hello"}