我的外部javascript文件中有这样的函数(jQuery已包含在主html文件中):
function userlogin(){
$('#ologinbox').html('<div class="input"><div class="input-text"></div><div class="input-field"><img src="css/images/loading.gif" /></div></div>');
var data = 'username=' + $('#loginusername').val() + '&password=' + $('#loginpassword').val();
alert(data);
}
我的html是这样的:
<div class="input">
<div class="input-text">UserName: <div>
<div class="input-field"><input name="loginusername" id="loginusername" /></div>
</div>
<div class="input">
<div class="input-text">Password: </div>
<div class="input-field"><input name="loginpassword" id="loginpassword" type="password" /></div>
</div>
<div class="input">
<div class="input-text"></div>
<div class="input-field"><input type="submit" value="Send" onclick="userlogin();return false;"/></div>
</div>
当我点击按钮时,警告框中显示的$('#loginusername').val()
和$('#loginpassword').val()
的返回值未定义。
我想知道为什么会这样?
答案 0 :(得分:3)
$('#ologinbox').html('<div class="input"><div class="input-text"></div><div class="input-field"><img src="css/images/loading.gif" /></div></div>');
var data = 'username=' + $('#loginusername').val() + '&password=' + $('#loginpassword').val();
假设您发布的登录信箱是div
的一部分,标识为ologinbox
,您只是替换了其内容,因此丢失了元素#loginusername
和#loginpassword
。< / p>
在检索值后替换内容:
var data = 'username=' + $('#loginusername').val() + '&password=' + $('#loginpassword').val();
$('#ologinbox').html('<div class="input"><div class="input-text"></div><div class="input-field"><img src="css/images/loading.gif" /></div></div>');
(请注意您的原始代码段 如何包含明确的<div id="ologinbox">
!请将来将您的测试用例放入jsfiddle.net < strong>验证它会重现问题,否则我们只是在猜测。)
答案 1 :(得分:1)
只需使用jQuery来处理click事件。不知道为什么你只是没有得到一个空字符串。要修复它,请分配属性并考虑使用jQuery来处理事件。
<script type='text/javascript'>
$(document).ready(function(){
$("#button").click(Foo);
function Foo(){
var myVar = $("#someInput").val();
alert(myVar);
return false;
}
});
</script>
<input id="someInput" value=""/>
<input type="submit" />
答案 2 :(得分:0)
我在jsfiddle中尝试了这个,并且这样做是正确的:http://jsfiddle.net/9gDas/。您是否在提交按钮上绑定了另一个事件,还是可以发布更多代码?在jsfiddle中我使用了jQuery 1.5.2,你使用哪个版本?
编辑: 正如您在此处所见:http://jsfiddle.net/r4QG3/您提供的代码正常运行。我无法测试ajax帖子。这段代码出了什么问题?
答案 3 :(得分:0)
试试这个:http://jsfiddle.net/pvQGs/
<input id="someInput" />
<input id="submitter" type="submit" />
$("#submitter").click(function() {
var myVar = $('#someInput').val();
alert(myVar);
return false;
});