javascript - JavaScript 在第一个逗号处用空格分割字符串并忽略字符串的其余部分
问题描述
编辑:感谢您对此的输入,问题是初始输入字段通过谷歌自动完成接收字符串,并且更改无效....但是当我将其更改为提交表单时,字符串按预期截断。很大的帮助,下面的解决方案也很好用,谢谢。
我真的不知道为什么这不起作用,我已经测试了在这里找到的几个变体,但没有得到字符串的完整部分。
我有一个自动完成的输入字段,地址值用逗号分隔,即“街道值、城市值、州和邮政编码值、国家值”。
我正在使用 on change 函数将每个部分放入单独的字段中:
jQuery('input[name="location"]').on("change", function() {
var location = jQuery('input[name="location"]').val();
var street = location.split(',')[0];
jQuery('input[name="street"]').val(street);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
但是,尽管“Street”的输入字段应该更新为例如“1234 Random Avenue”的值,但它在字段中只返回“1234”。因此,无论出于何种原因,在逗号之前的字符串中的第一个空格处截断,而不是根据需要包括第一个逗号分隔符之前的所有内容。我已经测试过使用[1]
但没有区别......它在第一个空格之后不返回任何内容,而不是使用指定的逗号作为要使用的分隔符......
解决方案
你能解释一下这个问题吗?
根据我对您的代码的理解,这是一个正确工作的 Codepen:
jQuery('input[name="location"]').on("change", function() {
var location = jQuery('input[name="location"]').val();
var parts = location.split(',');
if(parts.length >= 1){
var street = parts[0];
jQuery('input[name="street"]').val(street)
}
if(parts.length >= 2) {
var house = parts[1];
jQuery('input[name="house"]').val(house);
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="location" name="location">
<input type="text" placeholder="street" name="street">
<input type="text" placeholder="house" name="house">
推荐阅读
- css - 向 laravel 应用程序添加自定义字体
- c# - 在 C# 中将具体对象转换为“对象”
- css - Flexbox:具有列换行的可变/动态高度项目
- mule - Mule 4:如果 Mule 应用程序崩溃/重新部署,批处理作业的行为
- c# - 如何访问添加到面板的控件?
- azure-devops - Azure DevOps:我们能否识别从变更集编号触发的构建?
- c++ - C++ 如何修改文本文件的内容?
- r - 如何在R中的tidyverse中反转分数的分位数?
- javascript - SharePoint Online 未捕获类型错误:无法读取未定义的属性“应用”
- server - 无法在服务器 C++ 中连接第二个客户端