【问题标题】:disabling user input php/html form禁用用户输入 php/html 表单
【发布时间】:2013-01-22 20:57:40
【问题描述】:

我有一个 HTML 表单,当用户单击提交时,所有信息都使用 POST 方法通过 php 脚本发送到电子邮件。我想要做的是在单击提交按钮后禁用所有用户输入或将所有文本框输入字段变灰。我该怎么做呢?

此时提交按钮的代码如下所示:

<input type="submit" value=" Continue " style="width:200px;height:40px">

【问题讨论】:

  • 当用户按下提交按钮时会发生什么?页面重定向到哪里或者你通过ajax提交数据?
  • 好问题@Deadlock!如果您在用户单击提交后将页面重定向到流程/成功页面,那么您不需要禁用表单。如果你使用 ajax 来做,你可以禁用属性 disabled 的所有输入
  • 信息通过电子邮件发送给我自己,页面重定向到成功页面,是的,表示表单已提交。但初始表单是用户申请流程的一部分,当他返回用户帐户并进入表单页面时,它应该是灰色或禁用的,因为他已经提交了它。我没有使用 ajax,只是简单的 php 联系表单脚本。
  • 您是否使用任何表格或存储表单值?
  • 表单信息通过一个 php 页面传递,该页面在通过电子邮件发送之前验证所有信息。如果这就是您的要求,我不会存储在 sql 数据库中。

标签: php


【解决方案1】:

在下面添加到您要禁用的每个 HTML 输入元素。因为你没有提到我假设你可以使用 PHP。

<?php if(isset($_POST['submit'])) echo 'disabled="disabled"'; ?>

如果你使用 AJAX,当事件被触发时,在特定事件中

$("input").prop('disabled', true);

【讨论】:

  • 这只工作一次,我想要这样每次用户进入页面时,它都会保持禁用状态。
  • 那么你必须将数据存储在数据库中并检查
【解决方案2】:

Onclick 提交按钮使所有输入禁用

$("input").attr('disabled', true);

【讨论】:

    【解决方案3】:

    由于是否发送邮件是服务器端处理,所以从服务器端处理比从客户端(如 jQuery 和 javascript)处理更好:

    $form_state = ($is_mail_sent)?"":"disabled='disabled'";
    
    <input type="submit" <?php echo $form_state ?> value=" Continue " style="width:200px;height:40px">
    

    【讨论】:

      【解决方案4】:

      如果没有 db 交互,您将无法做到这一点,在 db 表中有一个标志。如果用户提交表单,则设置标志 1,默认为 0。根据标志值,您可以禁用表单。

      if(mailsent_status_of_the_user == 1){
          $status = "disabled='disabled'";
      }else{
         $status = "";
      }
      
      
      
      <input type="submit" value=" Continue " <?php echo $status; ?> >
      

      【讨论】:

        【解决方案5】:

        通过使用 jQuery:$("input").prop('disabled', true); 但是在纯Html中不刷新页面是不可能的!

        编辑: Javascript:

        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
        $(document).ready(function(e) {
            $("#yourFormID").submit(function() {
                $("#theInputToDisable").prop('disabled', true);
                //Or to disable all inputs 
                //$(this).children("input").prop('disabled', true);
                //$(this).children("input").attr('disabled', 'disabled'); 
                return false;
            })
        });
        </script>
        

        HTML

        <form id="yourFormID">
            <input type="text" />
            <input type="submit" value="Send"/>
        </form>
        

        【讨论】:

        • 并启用它$("input").prop('disabled', false);
        • 这是永久禁用,如果用户退出并稍后进入页面,它将被禁用?还有当点击提交按钮时我将如何实现这个代码?
        猜你喜欢
        • 1970-01-01
        • 2019-04-26
        • 1970-01-01
        • 2014-09-02
        • 2021-03-08
        • 1970-01-01
        • 2016-01-26
        • 1970-01-01
        • 2010-09-27
        相关资源
        最近更新 更多