我有一个非常简单的问题。不幸的是,我找不到答案。
我刚刚制作了两个简单的输入函数
Input 1:<br /><input type="text" id="i1" name="i1" />
Input 2:<br />
<input type="text" id="i2" name="i2" />
当更改输入1时,我想让结果显示在输入2中。此外,我想要替换一些字符,并且我希望将字符设置为小写(以便将其用作网址)。
所以我做了以下jQuery代码:
$("#i1").keyup(function() {
var ptitle = $("#i1").val();
$("#2").val(ptitle.replace(" ", "-").toLowerCase());
});
这很好用,除非我输入的字符串有多次相同的字符要替换。然后它只会在第一次更换。
例如:当我输入输入1:'关于这家公司'时,它将导致输入2:'about-this company'。它应该是:'关于这个公司'。有谁知道我的jQuery代码出了什么问题?
答案 0 :(得分:9)
这样的事情:
$("#i1").keyup(function() {
var ptitle = $(this).val();
$("#i2").val(ptitle.replace(/\s/g, "-").toLowerCase());
});
答案 1 :(得分:2)
这是因为replace需要一个全局标志来替换多个实例。
试试这个
$("#i1").keyup(function() { var ptitle = $("#i1").val();
$("#2").val(ptitle.replace(/ /g, "-").toLowerCase());
});
这是一个非常接近的问题,给你一个很好的答案:
Replacing spaces with underscores in JavaScript?
答案 2 :(得分:0)
这对我有用
$(function(){
$("#i1").keyup(function() {
var ptitle = $("#i1").val();
$("#i2").val( ptitle.replace(/ /g,"-").toLowerCase() );
});
});