Javascript运行onChange而不是onLoad

时间:2015-10-07 13:55:59

标签: javascript html

我有一个非常简单的Javascript工作正常onLoad,但我需要它才能工作onChange

我的剧本;

<form action="" method="post" name="product_search">
    <p><strong>Existing Part Number:</strong>
      <input name="v_prodref" type="text" id="v_prodref" size="25" maxlength="25" onChange="searchValue()"> 
      <input type="text" name="prodref" id="prodref">

      <input type="submit" name="search_Submit" id="search_Submit" value="Submit">
    </p>
    <div>
    <%=(rs_ProductCheck.Fields.Item("prodref").Value)%>
    // <%=(rs_ProductCheck.Fields.Item("proddesc").Value)%></div>
    <script>
        function searchValue() {
        var add = "NW";
        var c_ProdRef = document.getElementById('v_prodref');
        if(c_ProdRef.search(/GST/i) == -1) {
        n_ProdRef = c_ProdRef.concat(add) }
        else {
        n_ProdRef = c_ProdRef.replace(/GST/i,"NWGST") }
        document.getElementById("prodref").value = n_ProdRef;
        }
        </script> 
    </form>

所以,我在第一个文本框中输入了一个部件号,我想让我的javascript运行并在第二个文本框中输入新值,但它似乎不起作用。

我错过了什么?

3 个答案:

答案 0 :(得分:0)

search上不存在

HTMLInputElement。您需要使用c_ProdRef.value.search

(实际上,由于你在许多地方使用它作为字符串,从不作为输入,你可能打算将c_ProdRef定义为var document.getElementById('v_prodref').value

你也会在加载时看到这个错误。

答案 1 :(得分:0)

你想要onkeyup如果它完全正常onLoad,并且你想开始在文本框1中键入内容并运行javascript,那么你不想要onchange

onchange在聚焦元素模糊后触发

释放键盘输入后

onkeyup触发

答案 2 :(得分:0)

感谢大家的帮助。经过一些调整后,我设法让代码正常工作。

function myFunction() {
    var add = "NW";
    var c_ProdRef = document.getElementById('v_prodref').value;
    if (c_ProdRef.search(/GST/i) == -1) {
        n_ProdRef = c_ProdRef.concat(add)
    } else {
        n_ProdRef = c_ProdRef.replace(/GST/i, "NWGST")
    }
    document.getElementById("prodref").value = n_ProdRef;
}

除了onKeyup的@indubitablee建议并指定我的第一个文本字段的.value外,这一切都有效。