【问题标题】:How to clear Selectize value on Submit? [Cannot read proprety 'clear' of undefined]如何在提交时清除选择值? [无法读取未定义的属性“清除”]
【发布时间】:2021-09-08 04:55:28
【问题描述】:

提交后我必须清除选择输入,但它给了我这个错误消息:

Cannot read property 'clear' of undefined

这是我目前所拥有的:

  1. GET $_POST 值,这没什么问题。
   <?php
       $autoclear = "0";
       if (isset($_POST['autoClear']))$autoclear = $_POST['autoClear'];
   ?>
  1. 我的 HTML 表单,这也没什么问题。
<form method="post" action="">
<input type="checkbox" id="autoClear" name="autoClear" value="1" <?php if ($autoclear == '1') echo 'checked'; ?>>
  <select id="client" name="client" class="client selectize" >
    <option>
      ...
      ...
    </option>
  </select>
<!-- OTHER INPUTS, IRRELEVANT -->
<input type="submit" name="submitBtn" id="submitBtn" class="submitBtn btn-info" value="Submit">

</form>
  1. 这是问题。似乎 HTML &lt;select id="client" .... &lt;/select&gt; 必须先加载,然后才能调用 selectize .clear() 函数。但是,由于 PHP 是在服务器端运行的,所以它会打印出来,这可能是导致问题的原因吗?
<script>
   function clearSelectize(){

      // Clear Selectize [ERROR]
      $('#client')[0].selectize.clear();
   }

</script>

<?php 
      if ($autoclear == '1'){
         echo "<script>clearSelectize(); </script>";
      }
?>

最初做了什么:重新加载页面。

<script>window.location.href = 'page.php'; </script>

但这会clearALL输入,所以我必须想办法清除ONLY selectize input

更新:解决方案#1

<script type="text/javascript">
     $(document).ready(function () {
         <?php
             if ($autoclear == '1'){
                 echo "$('.car.selectize')[0].selectize.clear();";
             }
         ?>
     }
</script>

这对我有用,谢谢。如果有人有更好的方法/解决方案,请告诉我。

非常感谢任何建议/建议!谢谢!

【问题讨论】:

    标签: javascript php html jquery selectize.js


    【解决方案1】:

    由于您必须确保selectize()初始化,因此使用$('document').ready(function(){}); 即可。

    里面可以放你的PHP条件,提交后生效:

    <script type="text/javascript">
         $(document).ready(function () {
             <?php
                 if ($autoclear == '1'){
                     echo "$('.car.selectize')[0].selectize.clear();";
                 }
             ?>
         }
    </script>
    

    【讨论】:

      【解决方案2】:

      jquery中没有这样的选择器

      $(".classname.classname") // is wrong
      // use space multi class 
      $(".classname .classname") // is correct 
      // your code is wrong 
       $('.client.selectize')[0].selectize.clear();
      

      【讨论】:

      • 这行代码不是问题。我实际上有一个清除按钮,我使用这个功能来清除选择,它工作正常。这里的问题是:提交后清除selectize,所以我要检查$_POST['autoClear],如果值为“1”,则清除Selectize。
      • @crazzyguti 我的 JQuery 选择器是正确的,我选择了一个包含“client”和“selectize”类的元素。看看这个:stackoverflow.com/questions/1041344/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      相关资源
      最近更新 更多