ian
ian

Reputation: 12335

jquery get not passing values

My html form:

<input id="captcha_response" name="captcha_response" type="text" value="" size="5" maxlength="5">    
<div class="new_comment"><input id="comment" name="comment" type="text" value="your comment here..."></div>
    <div class="author"><input name="name" type="text" value="your name"></div>
    <div class="email"><input name="email" type="text" value="email"></div>

My jquery:

$.ajax({
   type: "GET",
   url: "ajax/check_captcha.php",
   data: ({ captcha : captcha , comment:comment , name:name, email:email }), dataType: "json", success: function(data)
    {

This is returning a 'not enough arguments' error in firebug.

It was working with just the 'captcha' value being passed but no longer.

Email seems to be the value that is not being passed on.

Upvotes: 0

Views: 193

Answers (2)

Reigel Gallarde
Reigel Gallarde

Reputation: 65254

try removing the two ( and ) in data, just like this

data: { captcha : captcha , comment:comment , name:name, email:email },

if your html inputs are on a <form> tag, it would be easier to use .serialize() and let jquery get all the data,...

like this

data: $('#fomID').serialize(), 
// this will build something like 
// "captcha=captchaData&comment=newComment&name=name&[email protected]"

Upvotes: 2

Jason Lewis
Jason Lewis

Reputation: 18665

You said that they are form names? Yet, have you defined them as variables. Couldn't tell since you don't show the rest of your script.

data: { 
    captcha : $("input[name='captca_response']").val(), 
    comment : $("input[name='comment']").val(), 
    name : $("input[name='name']").val(), 
    email: $("input[name='email']").val()
}

Try something like that, so that you actually return the values of the inputs.

Upvotes: 0

Related Questions