我正在使用精美的盒子构建一个表单,表单工作正常,但我无法从文本框中获取价值。
我的java脚本是
$(function () {
$("#button").click(function () {
var yourName = $("input#yourName").val();
alert(yourName);
if (yourName == "") {
$('input#yourName').css({
backgroundColor: "#F90"
});
$("input#yourName").focus();
return false;
}
$.ajax({
type: "POST",
url: "bin/form1.php",
data: $("#login_form").serialize(),
context: document.body,
success: function (res) {
var success = '<?php echo sprintf(_m('Success name % s '), "" ); ?>';
success = success.replace(/^\s*|\s*$/g, "");
var RegularExpression = new RegExp(success);
if (RegularExpression.test(res)) {
alert('Message Sent');
$.fancybox.close();
} else {
alert('Error While processing');
}
},
});
return false;
});
});
现在我的HTML是
<div style="display:none; height:450px">
<form id="login_form" action="">
<p id="login_error">
Please, enter data
</p>
<input type="hidden" name="action" value="send_friend_post" />
<label for="yourName" style="margin-right:110px;">
<?php _e( 'Your name', 'newcorp') ; ?>
</label>
<input id="yourName" type="text" name="yourName" value="" class="text_new " />
<br/>
<input type="submit" value="Submit" id="button" class="text_new" style="background:#930; color:#FFF; width:250px; margin-left:170px" />
</form>
</div>
我正在从
打开这个精美的盒子弹出窗口<a id="tip5" title="" href="#login_form"><?php echo "Login" ; ?></a>
每件事情都运转正常但我无法获得yourName
的价值,即使警报显示空白。
由于
答案 0 :(得分:2)
而不是
var yourName = $("input#yourName").val();
试
var yourName = $("input[name='yourName']:text").val();
这将使您的函数读取文本框的值。
答案 1 :(得分:1)
首先,使用您的表单,最好使用
$(document).on('submit', 'form', function () { ... })
而不是
$(document).on('click', '#myButton', function () { ... })
其次,您应该将代码封装到$(document).ready(function () { .. });
这是一个有效的例子;)http://jsfiddle.net/aANmv/1/
答案 2 :(得分:0)
click
事件,请尝试live
该事件。或者on
使用jQuery 1.7&lt;。 live
:
$("#button").live('click', function() { ... });
on
:
$("#button").on('click', function() { ... });
还尝试在加载DOM后加载javascript:
$(document).ready(function(){
$("#button").live('click', function() { ... });
...
});
答案 3 :(得分:-2)
而不是那个
$(function() {
尝试
$(document).ready() {
这样您就可以确保只有在文档完全加载后才能执行代码。哦,您可以使用#yourName
代替input#yourName
,如果我没错,它应该更快。