问题描述
我必须在提交后清除选择输入,但它给了我这个错误信息:
Cannot read property 'clear' of undefined
这是我目前所拥有的:
- GET $_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输入,所以我必须找到一种方法来清除仅选择输入。
更新:解决方案#1
<script type="text/javascript">
$(document).ready(function () {
<?PHP
if ($autoclear == '1'){
echo "$('.car.selectize')[0].selectize.clear();";
}
?>
}
</script>
这对我有用,谢谢。如果有人有更好的方法/解决方案,请告诉我。
非常感谢任何建议/建议!谢谢!
解决方法
由于您必须确保 selectize()
已初始化,因此使用 $('document').ready(function(){});
即可完成这项工作。
里面可以放你的PHP条件,提交后生效:
<script type="text/javascript">
$(document).ready(function () {
<?php
if ($autoclear == '1'){
echo "$('.car.selectize')[0].selectize.clear();";
}
?>
}
</script>
,
jquery 中没有这样的选择器
$(".classname.classname") // is wrong
// use space multi class
$(".classname .classname") // is correct
// your code is wrong
$('.client.selectize')[0].selectize.clear();