指南文本 使用其他控件输入文本时不起作用
Guide Text Not working when text is entered using another control
我有一个文本框用于按用户输入文本,当用户开始写作时,该文本会消失。但是当我使用下拉菜单并从中选择文本时,该文本会自动输入到文本框中,指南文本不会消失。
我用来淡化指南文本的事件:
$('input, textarea').live('keydown', toggleLabel);
$('input, textarea').live('paste', toggleLabel);
关于下拉列表的更改:
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val());
});
请帮忙。
如果不看到代码的其余部分,很难说,但是由于您正在动态更改代码,因此不会触发事件(我认为更改可能会,但查看它并意识到它不会)。既然你已经有一个下拉列表的 onchange 事件,为什么不在那个时候调用 toggleFunction?
http://jsfiddle.net/spacebean/SvNUw
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val());
toggleLabel();
});
或者,您可以在替换文本后添加焦点并为其设置侦听器:
http://jsfiddle.net/spacebean/SvNUw/2/
$('input, textarea').live('keydown paste focus', toggleLabel);
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val()).focus();
});
或者最后,您可以在复制文本后向元素添加一个触发器,例如:http://jsfiddle.net/spacebean/SvNUw/4/
$('input, textarea').live('keydown paste', toggleLabel);
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val()).trigger('paste');
});
而且,如您所见,如果每种事件类型都触发相同的函数,则不需要为它们单独行。只需添加它们,如上所示,用空格分隔。
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Sails.js:同时发布文本输入和一个文件
- 来自文本输入null的html javascript变量
- 当没有文本输入聚焦时检测空格键按下
- JS中的按钮和文本输入
- JavaScript:在调用函数的文本输入上按enter键
- jQuery自动完成功能不适用于多个文本输入
- 使用JS从选择和文本输入中捕获值,并将输出返回到HTML
- 如何通过jQuery发送选定的元素和文本输入
- HTML如何根据javascript函数的返回值限制文本输入
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在jquery中获取文本输入val始终为空
- HTML文本输入大小
- 文本输入与文本区域
- 角度ui选择标记模糊时丢失文本输入
- 文本输入值中的JavaScript变量
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 在文本输入区域中创建双向更新
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小