2016-09-15 53 views
0

我很好奇在一個JavaScript文件中有多個變量函數的正確方法。我似乎無法理解它的正確語法。如何在同一個文件中使用變量的多個JavaScript函數?

我想從randomsnippets.com複製這個例子,但希望表單的其他區域可以添加更多選項。我不想爲這件事情製作一堆腳本標記或js文件!

所以回顧一下,我想這樣的事情

variable a = value 
variable b = value 
function name(something){ 
stuff for variable a 
} 
function name(something){ 
stuff for variable b 
} 

非常感謝任何幫助!

<script> 
 
     var counter = 1; 
 

 
    var limit = 3; 
 

 
    function addInput(divName){ 
 

 
     if (counter == limit) { 
 

 
       alert("You have reached the limit of adding " + counter + " inputs"); 
 

 
     } 
 

 
     else { 
 

 
       var newdiv = document.createElement('div'); 
 

 
       newdiv.innerHTML = "Entry " + (counter + 1) + " <br><input type='text' name='myInputs[]'>"; 
 

 
       document.getElementById(divName).appendChild(newdiv); 
 

 
       counter++; 
 

 
     } 
 

 
    } 
 
    </script> 
 
<form method="POST"> 
 

 
    <div id="dynamicInput"> 
 

 
      Entry 1<br><input type="text" name="myInputs[]"> 
 

 
    </div> 
 

 
    <input type="button" value="Add another text input" onClick="addInput('dynamicInput');"> 
 

 
</form>

+3

那麼是什麼問題? – epascarello

+1

只要確保使用不同的名稱,你應該罰款與多個功能。 – Bergi

+1

作爲一般規則,儘量避免使用全局變量。您可以使用閉包繼續引用* counter *和* limit *。 – RobG

回答

0

我不知道我正確地得到了你的問題。我假設全局變量的問題並試圖給出解決方案。如果我是你,我會得到這種方法。使用全局變量不是一個好的解決方案。當頁面正在刷新時,變量將被重置。那麼準確性將不會存在。我的建議是即時獲得輸入計數。

var limit = 3; 

function addInput(divName){ 

    var counter = 1; 
    counter=$("#"+divName).children("input").length; 

if (counter == limit) { 

    alert("You have reached the limit of adding " + counter + " inputs"); 

} 

else { 

    var newdiv = document.getElementById(divName); 

    newdiv.innerHTML = newdiv.innerHTML+"<br/>Entry " + (counter + 1) + " <br><input type='text' name='myInputs[]'>"; 

    document.getElementById(divName).appendChild(newdiv); 

    counter++; 

} 

} 
相關問題