jQuery - 根据函数参数更改参数数量

时间:2013-12-11 02:25:16

标签: jquery

抱歉糟糕的头衔。我有一个带输入字段的简单表单,我知道每次提交表单时,传递的参数数量就是一个。当一个参数被传递时重新加载被评估为真,如果重新加载为真,则页面获得刷新。问题是如果我不想刷新页面怎么办?如果我想在某些情况下将重新加载评估为false,该怎么办?我可以将一些参数传递给userInput函数,该函数会将某些场景评估为false吗?有任何想法吗?我通过代码示例了解最多,请在适用的地方提供。我也有一个小提琴:

http://jsfiddle.net/JuG48/2/

<form id="myForm">
  <input id="address" name="address" value="address">
  <input type="submit" name="submit" value="submit">
</form>

function userInput(userLocation, input){
  $('#myForm').on('submit', function(e){
  reload = arguments.length > 1 ? arguments[1] : true;
  if (reload) location.reload();
  console.log(reload);
});
}

$(document).ready(function () {    
    userInput();
});

3 个答案:

答案 0 :(得分:1)

我认为在你的情况下,最快的解决方案是garlic.js

http://garlicjs.org/

<script type="text/javascript">
  $( 'form' ).garlic();
</script>

原生解决方案

$('#myForm').submit(function () {
 reload = arguments.length > 1 ? arguments[1] : true;
 if (reload) location.reload();
 console.log(reload);
 e.preventdefault();
});

答案 1 :(得分:0)

在提交表单时,该页面将自动刷新或跟随帖子操作网址。我对有条件地重新加载页面的行感到困惑。您是否尝试在false处理程序中返回submit来控制页面重新加载? How do I cancel form submission in submit button onclick event?

答案 2 :(得分:0)

假设你想在userInput()方法调用中没有参数是reload = false所以这样做......

function userInput(userLocation, input){
$('#myForm').on('submit', function(e){

   reload = (userLocation==undefined && input==undefined)? false 
   :(arguments.length > 1 ? arguments[1] : true);       
   console.log(reload);
   if (reload) location.reload();
   else return false;      
  });
}

$(document).ready(function () {    
userInput();
 });

<强> Fiddle demo