我有以下简单形式:
<select name="category">
<option value="">Choose a Category</option>
<option value="Social">Social</option>
<option value="Media">Media</option>
</select>
我使用以下jquery来重置表单:
$(document).ready(function(){
$(document).on('click', '.test', function(){
$('select[name*="category"]').val('');
$('form').submit();
});
});
问题是现在使用空查询字符串提交表单/?category=
有没有办法让它提交表单而没有这些空查询字符串只是为了重置它?
答案 0 :(得分:0)
我认为您的代码中不需要提交,只需使用以下内容:
$(document).ready(function () {
$(document).on('click', '.test', function () {
$('select[name*="category"]').val('');
});
});
答案 1 :(得分:0)
我建议删除控件本身:
$(document).ready(function () {
$(document).on('click', '.test', function () {
$('select[name*="category"]').remove();
$('form').submit();
});
});
答案 2 :(得分:0)
试试这个
$(document).ready(function () {
$('select[name*="category"]').val('');
$(document).on('click', '.test', function () {
$('select[name*="category"]').val('');
});
});
答案 3 :(得分:0)
如果您确实要重置整个表单,请使用基本的JS .reset()
。在您的代码中,您可以将整个click
函数替换为:
$('form')[0].reset();
这会将选定的JQuery对象转换为HTML节点引用,以便您可以在其上使用JS reset
函数。这会将表单中的所有字段重置为默认值。
注意:技术上$('form')[0]
是“页面上所有表单数组中的第一个对象”,因此,如果您有多个表单,则需要更多具体,以确保您重置预期的表格。
答案 4 :(得分:0)
试试这个:
$('#frm').submit(function(form){
$('#frm').find('[name="category"]').remove();
form.submit();
});
这将在表单提交期间删除查询参数。
<html>
<head>
<script type='text/javascript' src='file:///D:/bootstrap/js/jquery-ls.js'></script>
<body>
<form id='frm' method='get' action=''>
<select name="category" >
<option value="">Choose a Category</option>
<option value="Social">Social</option>
<option value="Media">Media</option>
</select>
<input class='test' type='submit' value='click' />
</form>
<script>
$(document).ready(function(){
$(document).on('click','.test',function(){
var data=$('#frm').serializeArray();
//alert(data[0]['value']);
console.log(data[0]);
if(data[0]['value']){
// alert('t');
$('frm').submit();
}
else{
$('#frm')[0].reset();
$('#frm').find('[name="category"]').remove();
}
});
});
</script>
</body>