未捕获的范围错误尝试从窗体输入变量时超出最大调用堆栈JS

未捕获的范围错误尝试从窗体输入变量时超出最大调用堆栈JS

问题描述:

正如标题所暗示的,当我尝试测试一个基本脚本时,我会一直收到这个错误,它会“读取”表单输入并使它们变量使用稍后的。未捕获的范围错误尝试从窗体输入变量时超出最大调用堆栈JS

HTML:

<script type="text/javascript" language="javascript" 
    src="./js/lisearch.js"></script> 
    <form name="search" action="" method="post"> 
     <h2>Include:</h2> 
     <div id="formtitle" class="formdiv"> 
     <p> Current Job Title:</p><input id="jtitle" type="text" name="jobtitle" placeholder="Demand planner, Supply planner"> 
     </div> 
     <div id="formcompany" class="formdiv"> 
     <p> Current Company:</p><input id="cmpy" type="text" name="company" placeholder="GSK OR Danone"> 
     </div> 
     <div id="formkeywords" class="formdiv"> 
     <p> Keywords:</p><input id="kwrd" type="text" name="keywords" placeholder="(SAP OR JDE) AND FMCG"> 
     </div> 
     <div id="formfirst" class="formdiv"> 
     <p> First Name:</p><input id="fname" type="text" name="first"> 
     </div> 
     <div id="formlast" class="formdiv"> 
     <p> Last Name:</p><input id="lname" type="text" name="last"> 
     </div> 
     <hr> 
     <h2> Exclude:</h2> 
     <div id="formnottitle" class="formdiv"> 
     <p> Current Job Title:</p><input id="njtitle" type="text" name="notjobtitle" placeholder="Manager OR Consultant"> 
     </div> 
     <div id="formnotcompany" class="formdiv"> 
     <p> Current Company:</p><input id="ncmpy" type="text" name="notcompany" placeholder="Coke OR Pepsi"> 
     </div> 
     <div id="formnotkeywords" class="formdiv"> 
     <p> Keywords:</p><input id="nkwrd" type="text" name="notkeywords" placeholder="Recruiter OR Recruitment"> 
     </div> 
     <div id="submit" class="formdiv"> 
     <input type="button" value="Create Search" onclick="onclick()"> 
     </div> 
     <div id="output" class="formdiv"> 
     <input type="text" name="output"> 
     </div> 
    </form> 

JS:

var company; 
var jobtitle; 
var keywords; 
var fname; 
var lname; 
var notcompany; 
var notjobtitle; 
var notkeywords; 
function onclick() { 
    company = document.getElementById('cmpy').value; 
    jobtitle = document.getElementById('jtitle').value; 
    keywords = document.getElementById('kwrd').value; 
    fname = document.getElementById('fname').value; 
    lname = document.getElementById('lname').value; 
    notcompany = document.getElementById('ncmpy').value; 
    notjobtitle = document.getElementById('njtitle').value; 
    notkeywords = document.getElementById('nkwrd').value; 
    test(); 
} 
function test() { 
    alert(company + jobtitle + keywords + fname + lname + notcompany + notjobtitle + notkeywords); 
} 

正如你可能会说我真的很新的这一切,但似乎无法弄清楚这一点,任何帮助表示赞赏。

谢谢你,在你的js代码*

这种消息的做递归调用,并得到一个周期的某个地方卡住,当你得到。在你的情况下,将onclick()函数重命名为其他内容,就是这样! 在这里,我做了一个plunker

function toto() { 
    company = document.getElementById('cmpy').value; 
    jobtitle = document.getElementById('jtitle').value; 
    keywords = document.getElementById('kwrd').value; 
    fname = document.getElementById('fname').value; 
    lname = document.getElementById('lname').value; 
    notcompany = document.getElementById('ncmpy').value; 
    notjobtitle = document.getElementById('njtitle').value; 
    notkeywords = document.getElementById('nkwrd').value; 
    test(); 
} 
function test() { 
    alert(company + jobtitle + keywords + fname + lname + notcompany + notjobtitle + notkeywords); 
} 

<input type="button" value="Create Search" onclick="toto()"> 
+0

由于已经做到了!我应该真正阅读“保留字” – Mike

+0

太棒了!并欢迎你:) – Vega

+0

我会做,但因为我有不到15代表它不记录我upvotes :( – Mike

放功能测试,这样的onclick()知道它是什么事件处理程序分配时。 编辑:其他反馈信息: 甚至不需要测试功能。只需将警报代码插入onclick功能即可。 编辑:移动脚本标记实际上不应该有任何效果。我不确定这里发生了什么问题。 编辑:解决它

<form name="search" action="" method="post"> 
     <h2>Include:</h2> 
     <div id="formtitle" class="formdiv"> 
     <p> Current Job Title:</p><input id="jtitle" type="text" name="jobtitle" placeholder="Demand planner, Supply planner"> 
     </div> 
     <div id="formcompany" class="formdiv"> 
     <p> Current Company:</p><input id="cmpy" type="text" name="company" placeholder="GSK OR Danone"> 
     </div> 
     <div id="formkeywords" class="formdiv"> 
     <p> Keywords:</p><input id="kwrd" type="text" name="keywords" placeholder="(SAP OR JDE) AND FMCG"> 
     </div> 
     <div id="formfirst" class="formdiv"> 
     <p> First Name:</p><input id="fname" type="text" name="first"> 
     </div> 
     <div id="formlast" class="formdiv"> 
     <p> Last Name:</p><input id="lname" type="text" name="last"> 
     </div> 
     <hr> 
     <h2> Exclude:</h2> 
     <div id="formnottitle" class="formdiv"> 
     <p> Current Job Title:</p><input id="njtitle" type="text" name="notjobtitle" placeholder="Manager OR Consultant"> 
     </div> 
     <div id="formnotcompany" class="formdiv"> 
     <p> Current Company:</p><input id="ncmpy" type="text" name="notcompany" placeholder="Coke OR Pepsi"> 
     </div> 
     <div id="formnotkeywords" class="formdiv"> 
     <p> Keywords:</p><input id="nkwrd" type="text" name="notkeywords" placeholder="Recruiter OR Recruitment"> 
     </div> 
     <div id="submit" class="formdiv"> 
     <input type="button" id="onclick" value="Create Search"/> 
     </div> 
     <div id="output" class="formdiv"> 
     <input type="text" name="output"/> 
     </div> 
    </form> 
    <script type="text/javascript"> 
var company; 
var jobtitle; 
var keywords; 
var fname; 
var lname; 
var notcompany; 
var notjobtitle; 
var notkeywords; 
document.getElementById("onclick").onclick=function() { 
    company = document.getElementById('cmpy').value; 
    jobtitle = document.getElementById('jtitle').value; 
    keywords = document.getElementById('kwrd').value; 
    fname = document.getElementById('fname').value; 
    lname = document.getElementById('lname').value; 
    notcompany = document.getElementById('ncmpy').value; 
    notjobtitle = document.getElementById('njtitle').value; 
    notkeywords = document.getElementById('nkwrd').value; 
    alert(company + jobtitle + keywords + fname + lname + notcompany + notjobtitle + notkeywords); 
} 
     </script> 
+0

这仍然给出了同样的错误,即使测试功能在顶部 – Mike