2010-09-27 2 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

Вы можете прикреплять к событию click с помощью jquery. Кроме того, не рекомендуется добавлять 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

+0

@ user186585 Почему? – alexn

1

Вы не можете отправить свою форму таким образом со ссылкой и некоторым javaScript, даже jQuery. Вы должны использовать вызов XHR для отправки запроса и не обновлять страницу. (вы можете отправить свою форму по ссылке, представленной Дэном, но я понимаю, что вы хотите сделать больше, чем просто из ваших вопросов). Причина в том, что оператор «return 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 form плагин от http://jquery.malsup.com/form/

Надеюсь, что это поможет!