Puis-je soumettre un <form>
html avec <div>
au lieu de <input type="submit">
?
Comme ça:
<form method="post" action="" id="myForm">
<textarea name="reply">text</textarea>
</form>
<div>Submit the form by clicking this</div>
Assez facile;
document.getElementById("myForm").submit();
Et si vous voulez le faire style jQuery (qui je ne recommande pas pour une tâche aussi simple );
$("#myForm").submit();
Oui, c'est assez simple. Il suffit d'utiliser la submit
[documentation jQuery] méthode à l'intérieur d'une fonction de gestionnaire click
.
$("#myDiv").click(function() {
$("#myForm").submit();
});
Si vous préférez, vous pouvez le faire avec Javascript Javascript:
document.getElementById("myDiv").onclick = function() {
document.getElementById("myForm").submit();
};
Lier l'événement de clic div.
$("div").click(function(){ $("form#myForm").submit(); });
$('#myDiv').click(function() {
$('#myForm').submit();
});
En utilisant jquery:
$('#myForm').submit();
Si vous souhaitez utiliser inutilement JavaScript, vous pouvez…
jQuery('div').click(function () { jQuery('form').submit(); });
… Cependant, vous devez utiliser un code HTML sémantique qui fonctionne sans la présence de JS. Utilisez donc un véritable bouton de soumission et appliquez CSS pour que celui-ci se présente comme vous le souhaitez.
Pour une meilleure sémantique et une dégradation gracieuse, je vous suggère de faire ceci:
$(document).ready(function(){
$('form input[type="submit"]').replaceWith('<div class="submit">Submit the form by clicking this</div>'); // replace submit button with div
$('.submit').live('click', function() {
$(this).closest('form').submit();
});
});
De cette façon, votre formulaire reste utilisable pour les clients sans JS.
Cela étant dit: stylez simplement vos entrées de manière à ce que vous le fassiez avec CSS;)
pourquoi ne pas simplement appeler un bouton pour ressembler à une div régulière? :)
button{
border:none;
background:none;
padding:0;
text-align:left;
}
<?php
if(isset($_POST['text']) && !empty($_POST['text']))
{
echo $text_val = $_POST['text'];
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="Enter your action">
<p><label>Enter your Text : </label>
<input type="text" name="text" id="text" onmouseover="this.form.submit();"></input>
</p>
</form>
</body>
</html>
Seulement en utilisant JavaScript, vous utiliserez généralement jQuery et lierez l’événement click de la div à l’événement submit du formulaire.
Voir: http://api.jquery.com/submit/
L'exemple ci-dessous montre même ce scénario exact.
Que dis-tu de ça:
$(document).ready(function() {
$('#submitDiv').click(function() {
$('#myForm').submit();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="" id="myForm">
<textarea name="reply">text</textarea>
</form>
<div id="submitDiv">Submit the form by clicking this</div>