我有一个注册框,除此之外它不会将textfield值发送到我的php脚本 - .val()是正确的功能吗?我知道这样做可能有一百多个错误,但我会很感激任何输入。使用jQuery获取文本字段值
$(document).ready(function(){
$("form#joinus").submit(function() {
var gender = $('#gender').attr('value');
var age = $('#age').attr('value');
var gamer = $('#gamer').attr('value');
var name = $('#name').val();
console.log("register AJAX input: " + "gender="+ gender +"& age="+ age +"& gamer=" + gamer +"& name=" + name);
var display = document.getElementById('feedback');
$.ajax({
type: "POST",
url: "scripts/register.php",
data: "gender="+ gender +"& age="+ age +"& gamer=" + gamer +"& name=" + name,
success: function(msg){
$('form#joinus').hide(function(){$('div.success').fadeIn();});
display.innerHTML = msg;
}
});
return false;
});
});
HTML:
form id="joinus" method="post" action="">
<fieldset>
<table style="text-align: left">
<tr><td>Gender:</td><td><select name="gender" id="gender">
<option value="male">Male</option>
<option value="female">Female</option>
</select></td></tr>
<tr><td>Age:</td><td><select name="age" id="age">
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
<option value="60">60</option>
<option value="61">61</option>
<option value="62">62</option>
<option value="63">63</option>
<option value="64">64</option>
<option value="65">65</option>
<option value="66">66</option>
<option value="67">67</option>
<option value="68">68</option>
<option value="69">69</option>
<option value="70">70+</option>
</select></td></tr>
<tr><td>Would you describe yourself as a "gamer"? (This refers to video games of any sort)</td><td><select name="gamer" id="gamer">
<option value="yes">Yes</option>
<option value="no">No</option>
</select></td></tr>
<tr><td>Enter the name you would like to use for any highscores (this may be seen by other users)</td><td><input type="text" id="name" name="name" />
</table>
<button class="button positive"> Submit </button>
</fieldset>
</form>
是的,'val()'是正确的函数,但是你正在使用'.attr('value')'这是错误的。此外,您应该将一个对象传递给'data:',以便jQuery可以应用URL编码:'data:{gender:gender,age:age,...}'。 – 2011-03-16 23:40:03
如果你仔细观察,我在名称上使用val(),这是我遇到问题的字段。我感谢你的建议,关于传递一个对象而不是字符串。 – 2011-03-16 23:44:14
@哈尔克莱夫:我见过它。你没有说这是你有问题的领域(尽管这可以推断出来)。你是否在'