2015-01-24 25 views
12

Mam następujący formularz. Chciałbym, aby było ono przesyłane automatycznie przez jQuery, gdy użytkownik dokona wyboru, bez konieczności naciskania przycisku przesyłania. Jak mam to zrobic?Jak przesłać formularz na Wybierz zmianę

<form action="" method="post"> 
    <select name="id" id="cars"> 
     <option value="">Choose</option> 
     <option value="1">Toyota</option> 
     <option value="2">Nissan</option> 
     <option value="3">Dodge</option> 
    </select> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

adeneo, próbowałem Twojej sugestii, ale nadal nie działa. Oto pełny kod, coś nie tak?

<!doctype html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#cars').on('change', function() { 
       this.form.submit(); 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     <form action="" method="post"> 
      <select name="id" id="cars"> 
       <option value="">Select...</option> 
       <option value="1">Toyota</option> 
       <option value="2">Nissan</option> 
       <option value="3">Dodge</option> 
      </select> 
      <input type="submit" name="submit" value="Submit"> 
     </form> 
    </body> 
</html> 

Odpowiedz

10

W formularzu brakuje wartości akcji, co uniemożliwia wysłanie formularza na końcu. Ale w połowie czasu należy poprawić ten kod:

$(document).ready(function() { 
    $('#cars').on('change', function() { 
    document.forms[myFormName].submit(); 
    }); 
}); 

Można również złożyć formularz wyzwalanie złożyć przycisk kliknij zdarzenie:

$(document).ready(function() { 
    $('#cars').on('change', function() { 
    var $form = $(this).closest('form'); 
    $form.find('input[type=submit]').click(); 
    }); 
}); 
+0

I zmieniono go na action = "page.php", który jest nazwą strony, i nadal nie przesyła formularza. –

+0

Wymieniłem dwa działające rozwiązania, daj mi znać, jeśli to pomogło. – Sigismundus

2

jeszcze można zrobić, to jedno:

<form action="" method="post"> 
<select name="id" id="cars"> 
    <option value="">Choose</option> 
    <option value="1">Toyota</option> 
    <option value="2">Nissan</option> 
    <option value="3">Dodge</option> 
</select> 
<input id='submit' type="submit" name="submit" value="Submit"> 

$(document).ready(function() { 
    $('#cars').on('change', function() { 
    $('#submit').click(); 

    }); 
}); 
5

W moim CA se, działa to doskonale i działa z przyciskiem przesyłania lub bez niego.

<form action="" method="post"> 
    <select name="id" id="cars"> 
     <option value="">Choose</option> 
     <option value="1">Toyota</option> 
     <option value="2">Nissan</option> 
     <option value="3">Dodge</option> 
    </select> 
</form> 

<script type="text/javascript"> 

    jQuery(function() { 
    jQuery('#car').change(function() { 
     this.form.submit(); 
    }); 
}); 
</script> 
+0

To nie powinno działać ... – Lee

+0

Działa dla mnie w CoffeeScript, ale używam '$ ('# car'). Change ->'. –

0

Wiem, że to trochę stary (i już odpowiedział), ale żadna z odpowiedzi był tak elastyczny, jak chciałem, więc poniżej jest rozwiązaniem skończyło się z:

$(document).ready(function() { 
    $('#cars').change(function() { 
    var parentForm = $(this).closest("form"); 
    if (parentForm && parentForm.length > 0) 
     parentForm.submit(); 
    }); 
});