清除输入字段值-STCombobox时出现意外的JS行为
Unexpected JS behavior when clearing input field value - STCombobox
我正在使用一些JQuery组合框,您可以在此处查看:https://simpletutorials.com/uploads/1860/demo/index.html
正如您所看到的,您可以开始键入并过滤结果。但是,一旦选择了一个值,当单击箭头打开列表时,将不再显示其他值。因此,如果我想更改学院/州,我需要手动清除输入值。我不喜欢这个,所以我想修改它。
我更改了代码,并在列表的点击事件上添加了这个JS:
onclick="document.getElementById('statesCombo-ddi').value='';"
这一行基本上通过id查找输入,并将其值设置为空字符串。您可以通过查找类为"stc-button"的td元素(对于Chrome,只需关注第二个组合框的箭头)并将我的代码添加到标签中来进行尝试。
===编辑===您可以通过将此代码直接添加到输入中来获得相同的结果:
onclick="this.value=''"
===结束编辑===
这有一个奇怪的行为:
- 如果我从列表中选择一个元素,它会清除值,并且一切正常
- 如果我键入一些字母,然后从列表中选择一个值,则单击后列表中不会显示任何项目
它怎么了?
您可以覆盖其中一个组合框方法来实现这一点:
STComboBox.prototype.filterAndResetSelected = function() {
this.$('ddi').val('');
this.filterList('');
this.selectRow(0);
this.$('ddl').scrollTop(0);
};
这有帮助吗?
提供了未经编译的代码,代码相对较小(12kb),注释也很好,因此如果您愿意,可以直接对源代码进行修改。
编辑:已修复清除输入值(如下面的注释所示)
通过阅读源代码并使用Chrome的检查器(Control+Shift+i
)进行一些调试,您可以找到需要清除的元素的特定ID(#collegesCombo-ddi
),以便清除输入框。一旦你找到了元素的ID,你就需要清除(并且要非常小心那些用相同ID分配多个元素的插件,这在标准中是不允许的,并且是代码编写不好的指标):
$('#collegesCombo-ddi').val('');
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- "未捕获的语法错误:意外的标记"角度JS
- 在意外断电时恢复JS计时器
- DynamoDB和Node Js:意外的令牌h
- 获取意外的令牌ILLEGAL JS错误
- 从Babel 5.8.35升级到6.0.0将不会编译带有SyntaxError和意外标记的app.js
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 在 JS 中短路空数组会产生意外结果:“[] ||真 == []'
- Chrome vs JS:未捕获的语法错误:意外的令牌)
- Underscore.js:具有_.object函数的意外行为
- 清除输入字段值-STCombobox时出现意外的JS行为
- 提高网络速度并连接到node.js服务器时出现意外行为
- js文件的第1行出现意外的输入结束错误
- Uglify JS错误:意外字符''连接时,请缩小select2
- AngularJS angular.js:12520 SyntaxError:意外的令牌ILLEGAL附属窗口
- 如何删除列表项angular??angular.js:12416语法错误:意外的令牌u
- Node.js 中意外的 vm.runInThisContext 控制流
- 节点.js未定义:1 [语法错误:输入意外结束]
- 在文件中执行 IIFE 时出现意外输出.js