●想在text文本框中把","换成"|"?但onChange没效果?
功能是:想把文本框中输入的文字通过 onChange 检测是否有",",如果有,就自动换成"|",但为什么用以下代码不行呢?
replacedou 函数应该没有问题,我测试了一下,可以替换的,但在 form 中通过onChange就不行了?请高手指点…
<script language=javascript>
// 作用是把字符中的 "," 换成 "|"
function replacedou(s)
{
var i;
var s2 = s;
while(s2.indexOf(",")>0)
{
i = s2.indexOf(",");
s2 = s2.substring(0, i) + "|" + s2.substring(i + 1, s2.length);
}
return s2;
}
</script>
<form name="form">
<input type=text name="AC" value="" onChange="return replacedou(this.value);">
<input type=text name="AB" value="" onChange="return replacedou(this.value)">
<input type=submit>
</form>
问题点数:20、回复次数:4Top
1 楼mingxuan3000(铭轩)回复于 2006-03-10 03:33:17 得分 10
function replacedou(s)
{
var i;
var s2 = s.value;
while(s2.indexOf(",")>0)
{
i = s2.indexOf(",");
s2 = s2.substring(0, i) + "|" + s2.substring(i + 1, s2.length);
}
s.value=s2;
}
<input type=text name="AC" value="" onChange="return replacedou(this);">
<input type=text name="AB" value="" onChange="return replacedou(this)">Top
2 楼ChinaMake2008(Notes)回复于 2006-03-10 08:31:20 得分 1
这个应该是只有手动变动才会又反应的~~~Top
3 楼manyou(他山之石【养万头猪,行万里路】)回复于 2006-03-10 08:38:12 得分 6
<script language=javascript>
// 作用是把字符中的 "," 换成 "|"
function replacedou(s)
{
var i;
var s2 = s;
while(s2.indexOf(",")>0)
{
i = s2.indexOf(",");
s2 = s2.substring(0, i) + "|" + s2.substring(i + 1, s2.length);
}
return s2;
}
</script>
<form name="form">
<input type=text name="AC" value="" onkeyup="document.all.AC.value = replacedou(this.value)">
<input type=text name="AB" value="" onkeyup="document.all.AB.value = replacedou(this.value)">
<input type=submit>
</form>Top
4 楼xuzuning(唠叨)回复于 2006-03-10 08:53:21 得分 3
1、onChange只在文本框失去焦点时被触发,按照你的需求应改用onKeyUp
2、onChange="return replacedou(this.value);"的写法有问题
你使用return把结果返回到那里去了呢?
应写做this.value=replacedou(this.value);Top




