Javascript jquery.val()和.length方法未按预期工作
在下面的代码中,Javascript jquery.val()和.length方法未按预期工作,javascript,jquery,Javascript,Jquery,在下面的代码中,.val()不返回任何结果,.length始终为键入的任何输入返回“1”。我哪里做错了 下面是HTML文件 页面标题 提交 下面是Javascript文件 <script> $(function(){ var value = $("#my_name").val(); var name_length=$('#my_name').length; $('#my_name').ke
.val()
不返回任何结果,.length
始终为键入的任何输入返回“1”。我哪里做错了
下面是HTML文件
页面标题
提交
下面是Javascript文件
<script>
$(function(){
var value = $("#my_name").val();
var name_length=$('#my_name').length;
$('#my_name').keyup(function(){
alert(name_length);
alert(value);
});
});
</script>
$(函数(){
var值=$(“#我的名字”).val();
var name_length=$(“#我的名字”).length;
$(“#我的名字”).keyup(函数(){
警报(名称和长度);
警报(值);
});
});
当没有值时,您正在抓取val
。该变量不会自动更新。这就是keyup
功能的作用:
$('#my_name').keyup(function(){
alert(this.value);
});
根据长度
,这是按预期工作的。选择器正在返回匹配元素的数组,该数组的长度为1
编辑:根据注释,如果您实际上希望检查输入值的长度,请使用
this.value.length
这是因为当您将元素分配给变量时,它的值为“”。您必须在事件发生时获取元素,例如:
$(function(){ // load
var mn = $('my_name');
mn.keyup(function(){
var value = mn.val(), name_length = mn.length;
console.log(value); console.log(name_length);
});
}); // end load
我想你需要这样: HTML: 或使用
keyup
功能:
在这里工作,享受演示的乐趣
:)
“name\u length”将始终返回1,因为您在选择器中使用的元素ID在您的page@Tats_innit-没有工作的:)
。。。至少对于我来说,我认为op想要检查这个.value的长度this.value.length
@Reigel——编辑答案以包含您的代码片段,谢谢!
$(function(){ // load
var mn = $('my_name');
mn.keyup(function(){
var value = mn.val(), name_length = mn.length;
console.log(value); console.log(name_length);
});
}); // end load
<form id="form">
<input type="text" name="my_name" id="my_name" />
<input type="submit" value="submit" />
</form>
$(document).ready(function(){
$("#form").on("submit", function(){
var inputValue = $("#my_name").val(),
inputLength = $("#my_name").val().length;
alert(inputValue);
alert(inputLength);
return false;
});
});
$(document).ready(function(){
$("#my_name").on("keyup", function(){
var inputValue = $("#my_name").val(),
inputLength = $("#my_name").val().length;
alert(inputValue);
alert(inputLength);
});
});