2013-07-31 428 views
0

我想要处理的代码是使用来自网页其他部分或数据验证的输入框中的信息。从我的理解,我必须使用东西的影响,例如:.val()为什么会导致错误?

<script> 
    var value = $('input').val(); 
    alert(value); 
</script> 

但是当我尝试使用这个代码块,Chrome的控制台告诉我的错误消息“未捕获参考错误:$没有定义,“但我不知道为什么。如果有帮助,下面是我的代码:

JS:

click = function() { 
var password = $('input#password').val(); 
alert(password); 
}; 

HTML:

<input type="text" id="password"> 
<input type="submit" onClick="click();"> 

如果有人能请解释为什么这个错误发生,我将不胜感激。提前致谢!

+8

您有加入jQuery的? – mohkhan

+0

要添加到@ mohkhan的评论,您是否将代码包装在DOM就绪回调中,比如'$(function(){})'? – mitch

回答

3

$()是一个JavaScript函数,它由jQuery库定义。
(这就像其他任何功能 - foo(),例如......它只是命名为一个单一的$)你从长相工作像它写入到使用jQuery

的例子,所以你需要确保在运行代码之前,在页面上包含jQuery。

试着在你的文件的顶部(在<head>部分如果可能的话)加入这一行:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

还有其他的图书馆,有时使用$名称,以及 - prototype,例如 - 和有多个图书馆争夺$名称有时会给你类似的外观错误。有techniques you can use来帮助避免这样的冲突。

+0

谢谢!我没有意识到我必须包括那条线。但是,控制台现在告诉我它无法加载资源。为什么是这样? – piticent123

+0

@ user2636428您是否在本地文件中运行此页面? – doppelgreener

+0

是的,我是。这是否意味着我必须保存记事本中的文本并引用它? – piticent123

0

试试这个

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

$(document).ready(function(){ 

var value = $('input').val(); 
    alert(value); 

    click = function() { 
     var password = $('input#password').val(); 
     alert(password); 
    }; 
}); 
+0

这不会帮助。 'click()'函数只在点击一个链接后运行 - 这里没有文档就绪问题。实际上,这只会掩盖'click'这个名称本身,所以它在HTML中不可用。 – jcsanyi

相关问题