【问题标题】:redirecting with javascript if a radiobox is checked如果选中单选框,则使用 javascript 重定向
【发布时间】:2019-03-21 21:46:59
【问题描述】:

我制作的 js 脚本有一些问题(可能是因为不是正确的方法,但我想出了这个想法)。 基本上我有一个表格,里面有一些单选按钮。是或否

<form action="#" method="POST" OnSubmit="return check()">
<input type="radio" id="effettuato" name="sicep" value="Effettuato" />Effettuato <br/>
<input type="radio" id="noneffettuato" name="sicep" value="Non Effettuato" />Non Effettuato <br/>
<input class="button" type="submit" name="submit" value="Invia" button style="height:50px;width:150px">
</form>

现在我制作了这个 JavaScript 脚本,因为如果没有选择单选按钮,我想停止用户。

    function check() {
    if (document.getElementById('effettuato').checked) {
        window.location = 'processiorari.php';
    }
    else if (document.getElementById('noneffettuato').checked) {
        window.location = 'processiorari.php';
    }
    else {
        alert('Seleziona tutti i campi per continuare!');
        return false;
    }
}

如果他选择了一个选项,我想将他重定向到另一个名为

的页面

processorari.php

写这些行的页面是

orari.php

有什么帮助吗?我只是做错了重定向还是整个概念都错了? 所有文件都在同一个文件夹中,我正在使用 xampp 运行所有文件

【问题讨论】:

  • console.log("here"); 放入您的 check() 函数中。运行您的脚本,选择单选按钮并检查控制台的输出。提示:它不会打印

标签: javascript php redirect radio-button forms


【解决方案1】:

检查哪个复选框被选中并相应地重定向页面:

  $(document).ready(function() {

     $('#mychckbx1').prop('checked') ?  window.location.href = 'page1.php' : false;

     $('#mychckbx2').prop('checked') ?  window.location.href = 'page2.php' : false;

  });

【讨论】:

    【解决方案2】:

    您可以在字段中使用 required="required" 并将表单操作设置为您要重定向的页面。

    <form action="processorari.php" method="POST">
      <input type="radio" id="effettuato" name="sicep" value="Effettuato" required="required" />Effettuato <br/>
      <input type="radio" id="noneffettuato" name="sicep" value="Non Effettuato" required="required" />Non Effettuato <br/>
      <input class="button" type="submit" name="submit" value="Invia" button style="height:50px;width:150px">
    </form>

    【讨论】:

    • 这很容易..现在我觉得很愚蠢。那解决了谢谢!因为我有多个问题,这是最好的方法。干杯!
    【解决方案3】:

    我不知道这是否是正确的方法,但不知怎的,这工作就好了

        function check() {
        if (document.getElementById('effettuato').checked) {
            return true;
        }
        else if (document.getElementById('noneffettuato').checked) {
            return true;
        }
        else {
            alert('Non puoi lasciare un campo in bianco!');
            return false;
        }
    }
    

    然后我在我的表单中留下这样的动作

    <form action="processorari.php" method="POST" OnSubmit="return check()">
    <input type="radio" id="effettuato" name="sicep" value="Effettuato" />Effettuato <br/>
    <input type="radio" id="noneffettuato" name="sicep" value="Non Effettuato" />Non Effettuato <br/>
    <input class="button" type="submit" name="submit" value="Invia" button style="height:50px;width:150px">
    </form>
    

    【讨论】:

      【解决方案4】:

      您可以使用click event listener 来实现此目的。单击按钮时,它会检查单选按钮是否被选中,如果是,它将使用window.location.href 重定向。无需使用提交。

      document.getElementById("submit-btn").addEventListener("click", function() {
        if(document.getElementById('effettuato').checked) {
          window.location.href = 'processiorari.php';
        } else if(document.getElementById('noneffettuato').checked) {
          window.location.href = 'processiorari.php';
        } else {
          alert('Seleziona tutti i campi per continuare!');
        }
      });
      <form method="POST" action="#">
      <input type="radio" id="effettuato" name="sicep" value="Effettuato" />Effettuato <br/>
      <input type="radio" id="noneffettuato" name="sicep" value="Non Effettuato" />Non Effettuato <br/>
      <input class="button" id="submit-btn" type="button" name="submit" value="Invia" button style="height:50px;width:150px">
      </form>

      【讨论】:

      • 即使我复制了你的代码并没有为我重定向,页面从 orari.php 变成了 orari.php?就是这样
      • 也许其他地方有问题,那个文件存在吗?该文件在正确的位置吗? @TheNoobUser
      • 我已经解决了我的问题,但是关于您的代码,是的,我意识到我在重定向文件名中添加了 1 个额外的字母。谢谢!
      【解决方案5】:

      问题是您仅在提交表单时才调用check() 函数。除此之外,我看不出有什么不妥。

      如果您将onsubmit 更改为onchange,如下所示:

      <form action="#" method="POST" onchange="check()">
          <input type="radio" id="effettuato" name="sicep" value="Effettuato"  />Effettuato <br/>
          <input type="radio" id="noneffettuato" name="sicep" value="Non Effettuato" />Non Effettuato <br/>
          <input class="button" type="submit" name="submit" value="Invia" button style="height:50px;width:150px">
      </form>
      

      【讨论】:

      • 主要问题是window.location应该是window.location.hrefonchange不会修复OP的问题,按钮是用来激活方法的。
      • 是的,但是使用 onchange,只要我单击单选按钮,它就会重定向我。我希望它在我单击发送按钮时重新定向
      • 我的错,你没有在 OP 中说你希望它在你点击发送按钮时重定向。
      • @Jaquarh window.locationwindow.location.href 不会有什么不同
      • @Kyle 不抱歉,我没有在我的问题中指定它,所以这是我的错
      猜你喜欢
      • 1970-01-01
      • 2014-02-08
      • 2016-08-22
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 2016-08-18
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多