簡體   English   中英

如何重復onClick文本輸入功能?

[英]How do I repeat the onClick text input function?

我是Java語言的新手。 我試圖用文本輸入字段中的輸入替換“ test”一詞。 該代碼似乎是第一次替換文本,但是我希望它每次在文本字段中輸入新值並按下按鈕時都執行。

       <p id="replacetext">
               1. Test </br>
               2. Test </br>
               3. Test </br>
       </p>
   <input id="myInput" type="text"/>
        ​
   <script>
            function onClick() {
                var replacetest =    document.getElementById("myInput").value;
                var str = document.getElementById("replacetext").innerHTML; 
                str = str.replace(/Test/g, replacetest);
                document.getElementById("replacetext").innerHTML = str;
                console.log(replacetext)
            }
        </script>
<button onclick="onClick()">Submit</button>
</body>

這是因為您沒有跟蹤舊值(即您正在用輸入值替換Test,但是下次沒有剩下“ Test”字符串來替換),請嘗試使用此小提琴https://jsfiddle.net/dzr8n9vh/

<p id="replacetext">
               1. Test </br>
               2. Test </br>
               3. Test </br>
       </p>
   <input id="myInput" type="text"/>
   <script>
            var oldValue  = 'Test';
            function onClick() {
                var replacetest =    document.getElementById("myInput").value;
                var str = document.getElementById("replacetext").innerHTML; 
                var re = new RegExp(oldValue,"g");
                oldValue =replacetest
                str = str.replace(re, replacetest);
                str = str.replace("Event", "Purchase");

                document.getElementById("replacetext").innerHTML = str;
            }
        </script>
<button onclick="onClick()">Submit</button>

查看腳本,即使在第一次調用中已經將字符串“ Text”更改為輸入值,您仍將在第二次調用上繼續替換字符串“ Text”。

您需要做的是記住上一次調用結束時上一次輸入的值(prevValue變量),然后在當前調用中將其替換為新輸入的值。 由於不能只在正則表達式中使用變量,因此必須將其轉換為正則表達式。

 <p id="replacetext"> 1. Test </br> 2. Test </br> 3. Test </br> </p> <input id="myInput" type="text" /> ​<script> // Set scope of variable outside of function var prevValue = "Test" function onClick() { var replacetext = document.getElementById("myInput").value; var str = document.getElementById("replacetext").innerHTML; // Convert the variable to use it in the regular expression var regex = new RegExp(prevValue, 'g'); str = str.replace(regex, replacetext); str = str.replace("Event", "Purchase"); document.getElementById("replacetext").innerHTML = str; console.log(replacetext); // Update the previous variable prevValue = replacetext; } </script> <button onclick="onClick()">Submit</button> 

希望這對您有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM