2010-06-07 5 views
6

jQuery val() na pas de travail, c'est le script simple:jquery val() ne fonctionne pas

$("#com_form").submit(function() { 
      var name = $("#nama").val(); 
          var komentar = $("#komentar").val(); 
      alert.("Hi, "+name+" this is your comment: "+komentar) 
      }); 

     });*/ 

c'est le formulaire HTML:

<form method="post" name="com_form" id="com_form"> 
    <p>What is your name:<br> 

    <input type="text" name="nama" id="nama"> 
    </p> 
    <p>Leave your comment here:<br> 

    <input type="text" name="komentar" id="komentar"> 
    </p> 
    <p> 
    <input type="submit" name="button2" id="button2" value="Submit"> 
    </p> 
</form> 

En fait, j'essayé de créer ajax post, la valeur "nama" est soumise mais pas "komentar". J'ai donc essayé de déboguer en utilisant l'alerte (comme ci-dessus) et encore "komentar" ne change pas. Que devrais-je faire?

+1

'alerte. (...)' vous avez un point supplémentaire ici. – kennytm

+2

À l'exception du '.' après l'alerte, votre code fonctionne: http://jsfiddle.net/HATSX/ –

+0

Bienvenue à SO ...: D – Reigel

Répondre

2

Vous avez des erreurs dans votre code HTML. Le formulaire doit avoir un attribut "action", aussi js ne va pas bien.

J'ai fait des exemples de fichiers html et js qui fonctionnent correctement. Le fichier html a passé la validation de w3.org et js a passé jslint.

 

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
    google.load("jquery", "1.4.2"); 
    </script> 
    <script type="text/javascript" src="2988992.js"></script> 
    <title>Insert title here</title> 
</head> 
<body> 
    <form method="post" name="com_form" id="com_form" action="2988992.html"> 
    <p>What is your name:<br> 
     <input type="text" name="nama" id="nama"> 
    </p> 
    <p>Leave your comment here:<br> 
     <input type="text" name="komentar" id="komentar"> 
    </p> 
    <p> 
     <input type="submit" name="button2" id="button2" value="Submit"> 
    </p> 
</form> 
</body> 
</html> 
 
 

"use strict"; 
/*global $, alert*/ 
$(function() { 
    $("#com_form").submit(function() { 
    var name = $("#nama").val(); 
    var komentar = $("#komentar").val(); 
    alert("Hi, " + name + " this is your comment: " + komentar); 
    return false; //prevent standard behavior 
    }); 
}); 
 
+0

L'attribut d'action n'est pas requis pour les formulaires. Si non défini - il sera envoyé à l'URL actuelle – ymakux

3

Avez-vous un autre élément HTML avec l'ID "komentar" ailleurs sur la page?

+1

Je travaille dans Django et j'ai eu une entrée avec le même identifiant dans mon base.html (un modèle pour toutes les pages). Votre réponse m'a vraiment sauvé. – nima

0

essayer

$(document).ready(function() 
    { 
    //jquery code here 
    } 
0

Retirez le. après la déclaration d'alerte, il se lit;

alert("Hi, "+name+" this is your comment: "+komentar)