JavaScript动态TextBoxInput赋值失效问题技术求助
解决文本框赋值无效的问题
嘿,我一眼就揪出问题所在啦!你代码里最关键的错误就是这行:
textBoxInput.value(textBox);
HTML输入元素的value是一个属性,不是可调用的方法,正确的赋值方式应该用等号直接赋值:
textBoxInput.value = textBox;
另外,我还帮你优化了字符串替换的逻辑——你原来的三次replace只能替换第一个匹配的字符(比如用户输入多个点的话,只会去掉第一个),改用正则表达式全局替换可以一次性处理所有的点和横杠,更高效:
修正后的完整函数代码:
function validarRutPromise(textBoxInput) { var textBox = textBoxInput.value; // 获取文本框当前值 textBox = textBox.toUpperCase() .replace(/[\.-]/g, ""); // 全局替换所有的点和横杠 textBoxInput.value = textBox; // 正确赋值回文本框 }
关于你提到的动态生成元素的问题:既然你已经能把textBoxInput作为参数传入函数,说明你已经拿到了对应的DOM元素实例,完全不需要再用document.getElementById或者document.getElementsByName去查找了,直接用传入的这个对象操作就好。
内容的提问来源于stack exchange,提问作者Shock
相关产品推荐
相关产品推荐

