Jquery val()内部自定义函数
jquery val() inside custom function
我有一个这样的函数在我的外部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()
的返回值为未定义。
我想知道为什么??
$('#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();
假设您发布的登录框是id为ologinbox
的div
的一部分,您只是替换了其内容,因此丢失了元素#loginusername
和#loginpassword
。
在检索值后替换内容:
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以验证是否再现了问题,否则我们只是猜测。)
使用jQuery来处理点击事件。不确定为什么没有得到空字符串。要解决这个问题,可以分配属性并考虑使用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" />
试试:http://jsfiddle.net/pvQGs/
<input id="someInput" />
<input id="submitter" type="submit" />
$("#submitter").click(function() {
var myVar = $('#someInput').val();
alert(myVar);
return false;
});
我在jsfiddle中尝试了这个,并且它正确地工作:http://jsfiddle.net/9gDas/。您是否在提交按钮上绑定了另一个事件,或者您可以发布更多代码?在jsfiddle我用的是jQuery 1.5.2,你用的是哪个版本?
编辑:您可以在这里看到:http://jsfiddle.net/r4QG3/您提供的代码可以正常工作。我不能测试ajax后。这段代码出了什么问题?
相关文章:
- 自定义函数中的光标位置
- Google Sheet自定义函数返回0
- 其中是自定义函数中的属性
- 创建自定义函数以在函数上运行完整的多选下拉列表
- Google Sheets自定义函数条件格式
- dalek回调或自定义函数
- UI网格:如何从自定义函数访问MODEL_COL_FIELD
- 评估作为参数传递给 Google 电子表格中自定义函数的条件
- 具有自定义函数调用的 HTML 表单
- 使用 jQuery 对动态创建的元素调用自定义函数
- 从自定义函数返回promise
- extjs-使用传递的参数创建自定义函数
- AngularJS DI用于自定义函数
- Javascript 自定义函数错误
- 如何使用Angular 1.5组件将属性求值为字符串,这是一个自定义函数
- 为谷歌工作表创建一个自定义函数
- Angular2 在创建 ngSwitch 新视图后调用自定义函数
- Apps脚本自定义函数-内部错误
- Javascript 自定义函数,内部有一个检查 for 循环
- Jquery val()内部自定义函数