所以我有一个文本框用户可以写一个URL。从jQuery中的字符串获取URL的域名
我有一个国家的旗帜和他们的代码下拉菜单。
我想实现的是当用户键入一个URL时,该标志将被更改为URL的域。例如:如果用户键入google.com,则下拉框应选择点后面的值,并选择美国国旗。
我使用这个库:https://github.com/mrmarkfrench/country-select-js
这里是我的HTML代码:
<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>
<label for="site_url">Search locale:</label>
<input id="country_selector" type="text">
<label for="site_url"></label>
<br>
<br>
<input type="submit" name="submit" class="btn" value="Add">
</form>
而且这里的脚本:
//the script to initalize the dropdown
$("#country_selector").countrySelect({
defaultCountry: "dk",
//onlyCountries: ['us', 'gb', 'ch', 'ca', 'do'],
preferredCountries: ['dk', 'gb', 'us', 'ca']
});
//script to change the dropdown value
$('#urlText').change(function changeCountry(string selectedCountryValue) {
$("#country_selector").countrySelect("selectCountry", $selectedCountryValue);
});
//script I've attempted to write
(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 = $('#country_selector selectCountry[value="' + str + '"]');
if ($opt.length) {
$opt.prop('selected', true);
break;
}
}
})
})(jQuery);
所以最后两个剧本有问题。我怎么写他们,所以changeCountry函数接受一个字符串selectedValue,然后最后一个函数应该调用changeCountry(str)?
编辑:我想我可能已经取得基本的jQuery的错误甚至...
我跑你的代码,我只收到了部分.COM和添加文件扩展名的URL仍然螺丝它(就像他们总是这样)。域名是domain.xxx,不只是“.xxx”部分。 “www。”域名的一部分是子域名,但www是一种参考。这实际上并没有影响任何东西。 –
不知道我很明白你想要做什么。你的例子说“如果用户键入google.com,下拉框应选择点后的值,选择美国国旗。” - 点后面的值是“com”? – jonofan
可能希望将您的评论发布在他的实际问题的评论部分,而不是您的答案。我不认为他会收到通知,要求他就这个问题回答他的答案。 –