Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:location.replace不';我不能在函数中工作_Javascript_Html_Forms_Listener - Fatal编程技术网

JavaScript:location.replace不';我不能在函数中工作

JavaScript:location.replace不';我不能在函数中工作,javascript,html,forms,listener,Javascript,Html,Forms,Listener,我正在制作一个web应用程序,我正在努力替换页面。 在函数myPage()中,当我放置location.replace(“file.html”)时在开始时,如果我不在web应用程序上插入输入,但当我放置位置.replace(“file.html”)时,它会工作则根本不起作用,并且在那里我需要放置位置。替换 请帮帮我 js代码: var submit = document.getElementById("submit"); submit.addEventListener("clic

我正在制作一个web应用程序,我正在努力替换页面。 在函数
myPage()
中,当我放置
location.replace(“file.html”)时
在开始时,如果我不在web应用程序上插入
输入,但当我放置
位置.replace(“file.html”)时,它会工作if
语句中的code>则根本不起作用,并且在那里我需要放置
位置。替换

请帮帮我

js代码:

    var submit = document.getElementById("submit");
    submit.addEventListener("click",myPage);

    function myPage(){
        //location.replace("file.html"); // here this is working
        var name=document.formId.nameRadio.value;//name="abc"
        if (name=="abc"){
            location.replace("file.html");//but here not
        }
    }

html代码:

<form  id="formId" name="formId" >
        <label>sth </label><br><br>
        <label for="name"> name  </label>
        <input type="text" id="name" name="name" required>
        <fieldset>
        <legend>sth</legend>
        <ul class="class-radio" >
            <li> <input  type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li>
            <li> <input  type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li>

        </ul>
        </fieldset>
        <input id="submit" type="submit" value="next" >
        </form>

某物
名称
某物
  • abc
  • cdf

将按钮类型更改为按钮。您的浏览器首先提交

var submit=document.getElementById(“提交”);
submit.addEventListener(“单击”,myPage);
函数myPage(){
//location.replace(“file.html”);//在这里工作
var name=document.formId.nameRadio.value;//name=“abc”
警报(名称);
如果(名称=“abc”){
location.replace(“file.html”);//但此处不是
}
}

某物
名称
某物
  • abc
  • cdf

您可以通过向onClick函数添加
preventDefault()
来停止通常的表单提交

var submit=document.getElementById(“提交”);
submit.addEventListener(“单击”,myPage);
功能myPage(e){
//防止表格提交
e、 预防默认值();
var name=document.getElementById('formId').nameRadio.value;
如果(名称=“abc”){
location.replace(“file.html”);
}
}

某物
名称
某物
  • abc
  • cdf

您似乎希望对表单提交有更多的控制权。
您可以将输入类型从submit更改为button;还要重命名该按钮以避免
您还可以通过直接在输入上使用click事件来简化代码。
以下是您可以尝试的:

<html>
   <body>
      <form id="formId" name="formId">
         <label>sth</label><br><br>
         <label for="name">name</label>
         <input type="text" id="name" name="name" required>
         <fieldset>
            <legend>sth</legend>
            <ul class="class-radio">
               <li><input type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li>
               <li><input type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li>
            </ul>
         </fieldset>
         <input id="btnSubmit" type="button" value="next" onclick="mySubmit()">
      </form>
      <script>
           function mySubmit()
           {
               var name = document.formId.nameRadio.value;
               if (name == "abc"){
                   location.replace("file.html");
               } else {
                   // Submit a form
                   document.formId.submit();
               }
           }
      </script>
   </body>
</html>

某物
名称
某物
  • abc
  • cdf
函数mySubmit() { var name=document.formId.nameRadio.value; 如果(名称=“abc”){ location.replace(“file.html”); }否则{ //提交表格 document.formId.submit(); } }
最可能的原因是
name
不等于“abc”。我无法理解您对问题的描述。@Pointy感谢您的回答,但不是这个……因为我通过在if语句中打印某个内容对其进行了测试……它被打印出来了……提交按钮提交,所以您可以同时执行两个操作
console.log()
是您的调试值朋友。@Barmar很抱歉,我不是英语母语人士。谢谢您在想同样的问题,您应该解释问题是什么以及如何解决问题,而不仅仅是post code.Yep。我想我不小心撞到了它。