如何清除提交时的 Selectize 值? [无法读取未定义的属性 'clear']
How to clear Selectize value on Submit? [Cannot read proprety 'clear' of undefined]
我必须在提交后清除选择输入,但它给我这个错误信息:
Cannot read property 'clear' of undefined
这是我目前所拥有的:
- 获取 $_POST 值,这没有错。
<?php
$autoclear = "0";
if (isset($_POST['autoClear']))$autoclear = $_POST['autoClear'];
?>
- 我的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>
- 这就是问题。似乎 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>
我必须在提交后清除选择输入,但它给我这个错误信息:
Cannot read property 'clear' of undefined
这是我目前所拥有的:
- 获取 $_POST 值,这没有错。
<?php
$autoclear = "0";
if (isset($_POST['autoClear']))$autoclear = $_POST['autoClear'];
?>
- 我的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>
- 这就是问题。似乎 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>