2010-09-27 132 views
0

我创建这个小JS,所以我可以控制的形式使用jQueryjQuery的形式提交

提交
$('#submit').click(function() { 
    $('#addForm').submit(); 

}); 

我可以用一个简单的href链接呢?

喜欢的东西

<a href="javascript:$('#addForm').submit();">link</a> 

我试图

<a href="javascript:document.addForm.submit();">link</a> 

但它并没有(通过它传给其他jQuery的页面)工作

回答

0

永远不要把JavaScript中的href属性。如果您必须输入HTML,请使用onclick属性,并记得添加return false。此外,永远不要前缀脚本与javascript:。尽管如此,你的第一个脚本块应该也能很好地完成这项工作。

(与“传给其他jQuery的页面它”是什么意思?)

1

如果您想您所创建控制提交JS,不要在你的链接href的值:

<a id="submit">link</a> 
0

您可以使用jquery附加到click事件。它也更清洁,不要把任何JavaScript放入你的html中。

<!DOCTYPE html> 
<html> 
<head> 
<title>Sample</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $('#aSubmit').click(function(){ 
      $('#form1').submit(); 
      return false; 
     }); 
    }); 
</script> 
<style type="text/css"></style> 
</head> 
<body> 
    <form id="form1" action="http://www.google.com/search" name=f> 
     <input name="q" /> 
    </form> 

    <a href="#" id="aSubmit">submit</a> 
</body> 
</html> 
+0

我尽量避免代码中的新功能 – user186585 2010-09-27 16:17:18

+0

@ user186585为什么? – alexn 2010-09-27 18:26:32

1

你不能以链接和一些javaScript甚至jQuery提交你的表单。您必须使用XHR调用来提交查询,而不是刷新页面。 (您可以使用Dan提供的链接提交表单,但我知道您希望做的不仅仅是您的问题) 原因是“返回false”语句会影响链接操作,而不是表单提交本身。 无论如何,我建议你不要使用链接来提交表单。

你可以很容易地提交一个正常的提交按钮和一点jQuery的形式。这样,您可以为尚未启用javaScript的用户提供良好的回退。

你甚至可以与一些客户端验证提交表单,使用下面的HTML/JavaScript的:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Sample</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function(){ 
      $('#addForm').submit(function(){ 
       validate(); 
       ajax_submit_function_taking_form_data_as_argument($(this).serialize()); 
       return false; 
      }); 
     }); 

     function validate(){ 
      //Do some client side validation if required 
     } 

     function ajax_submit_function_taking_form_data_as_argument(theData){ 
      $.ajax({ 
       type: 'GET', 
       url: "http://search.google.com/", 
       data: theData, 

       error: function(e){ 
        alert('error...'); 
       }, 
       success: function(data){ 
        alert('success!'); 
       } 
      }); 
     } 
    </script> 
    <style type="text/css"></style> 
</head> 
<body> 
    <form id="addForm"> 
     <input type="text" name="field1" value="" /> 
     <input type="submit" value="submit" /> 
    </form> 
</body> 
</html> 

最后一种解决方案,尽管也许太重的重量为您的使用,将是使用优秀的jQuery表格插件http://jquery.malsup.com/form/

我希望有帮助!