我被困在一个看起来像是一个微不足道的问题上,我可能会因为错过这个而踢我自己......不管怎样,我的问题是我没有从文本字段中获取价值。
HTML:
<form>
<label for="">Enter Username:</label>
<input id="usernameText" type="text" size="30" />
<input type="button" value="Generate" onclick="generateQuery(); return false;" />
</form>
使用Javascript:
<script type="text/javascript">
var username = $("#usernameText").val();
function generateQuery(){
alert(username);
}
</script>
我做了以下if (jQuery) {..
并确保加载了JQuery。
在警告中,它会显示一个空白对话框。
如果我将$(document).ready();
包含在我的脚本中,则不会调用函数generateQuery
。知道为什么......?
<script type="text/javascript">
$(document).ready(function(){
var username = $("#usernameText").val();
function generateQuery(){
alert(username);
}
});
</script>
答案 0 :(得分:10)
在函数中分配变量。
function generateQuery(){
var username = $("#usernameText").val();
alert(username);
}
至于你的另一个问题,“如果我把$(document).ready();包含在我的脚本中,函数generate就不会被调用。任何想法为什么......?”
这是因为范围而发生的。在添加generateQuery
处理程序时,将document.ready
包装在匿名函数中,因此button onclick="generateQuery()"
代码无法显示它。
答案 1 :(得分:3)
这里它将在页面加载时调用。因此,无论何时页面加载,文本框都是空的。尝试在函数内写入。
function generateQuery(){
var username = $("#usernameText").val();
alert(username);
}
当您在document.ready
中写入时,它会在页面加载时加速;如果您需要用户名的值,则显式调用。
答案 2 :(得分:1)
该值是第一次获得的。所以当首次加载页面时。
<script type="text/javascript">
function generateQuery(){
var username = $("#usernameText").val();
alert(username);
}
</script>
答案 3 :(得分:0)
在这里,您要定义调用函数以使其运行的函数,使用此generateQuery();
行来调用您的函数。
答案 4 :(得分:-1)
你在哪里调用函数????
我认为你需要:
<script type="text/javascript">
$(document).ready(function(){
generateQuery();
});
function generateQuery(){
var username = $("#usernameText").val();
alert(username);
}
</script>