如何清除提交时的 Selectize 值? [无法读取未定义的属性 'clear']

How to clear Selectize value on Submit? [Cannot read proprety 'clear' of undefined]

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

Cannot read property 'clear' of undefined

这是我目前所拥有的:

  1. 获取 $_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 <select id="client" .... </select> 必须先加载才能调用 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>

但这将 clear ALL 输入,所以我必须想办法清除 ONLY 选择输入

更新:解决方案#1

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

这对我有用,谢谢。如果谁有更好的way/solution,请告诉我。

非常感谢advice/suggestion!谢谢!

jquery

中没有这样的选择器
$(".classname.classname") // is wrong
// use space multi class 
$(".classname .classname") // is correct 
// your code is wrong 
 $('.client.selectize')[0].selectize.clear();

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

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

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