【发布时间】:2017-02-21 00:49:03
【问题描述】:
有问题的 JSFiddle 似乎没有问题:http://jsfiddle.net/S3LF3/(如果您键入 google.com 之类的网址,它将选择“.com”的值或您在点后放置的任何内容,并且它在列表中)
但是 jQuery 函数好像有问题?
在 chrome 中我得到这个错误:
Uncaught TypeError: $(...).ready(...) is not a function
这是我的代码:
<html>
<head>
<title>Add Site</title>
<script src="js/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/msdropdown/dd.css" />
<script src="js/msdropdown/jquery.dd.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/msdropdown/flags.css" />
</head>
<body>
<h1>Add new site</h1>
<div class="contentbox">
<form method="post">
<input type="hidden" name="addsite" value="true"/>
<p>
<label for="site_url">Site url:</label>
<input type="text" name="site_url" id="urlText" placeholder="domain.xxx" value=""/>
</p>
<p>
<label for="site_url">Search locale:</label>
<select name="locale" id="locale">
<option value="">
Select locale
</option>
<optgroup label="Popular">
<option value=".dk" data-image="images/msdropdown/icons/blank.gif" data-imagecss="flag dk" data-title="Denmark">Denmark - Danish</option>
<option value=".de" data-image="images/msdropdown/icons/blank.gif" data-imagecss="flag de" data-title="Germany">Germany - German</option>
<option value=".au" data-image="images/msdropdown/icons/blank.gif" data-imagecss="flag au" data-title="Australia">Australia - English</option>
</optgroup>
</select>
</p>
<p>
<label for="site_url"></label>
<input type="submit" name="submit" class="btn" value="Add">
</p>
</form>
</div>
</body>
</html>
<script>
$(document).ready(function() {
$("#locale").msDropdown();
})
(function ($) {
$('#urlText').on('change', function () {
var value = this.value,
parts = this.value.split('.'),
str, $opt;
for (var i = 0; i < parts.length; i++) {
str = '.' + parts.slice(i).join('.');
$opt = $('#locale option[value="' + str + '"]');
if ($opt.length) {
$opt.prop('selected', true);
break;
}
}
})
})(jQuery);
</script>
我想要做的是当用户输入一个 url,比如 "google.dk" ,它应该从下拉列表中为他选择末尾带有 ".dk" 的值。
【问题讨论】:
-
您是否包含了您的 jquery 文件,它是否在正确的位置并已加载?
-
是的,它加载 jquery 就好了
-
它没有改变任何东西
-
如果您删除文档就绪功能并在其他功能中将
$("#locale").msDropdown();添加到$('#urlText')上方会发生什么情况? -
我设法摆脱了弗拉纳根建议的错误。但是脚本似乎没有做任何事情。
标签: javascript jquery html css drop-down-menu