JavaScript:location.replace不';我不能在函数中工作
我正在制作一个web应用程序,我正在努力替换页面。 在函数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
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。我想我不小心撞到了它。