我正在尝试创建一个工具,允许我将不同的西班牙语字符插入到文本框中,例如倒置的问号。我现在得到以下内容,但这会返回:
function (e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}¿
HTML
<div class="container">
<textarea id="text"></textarea>
<div id="one">¿</div>
的 JS
$('document').ready(function() {
$('#one').click(function() {
$('#text').val($('#text').val + '¿');
});
});
关于我为什么收到此输出的任何想法? HTML实体也可以在文本框中工作,如果不是,我将如何操作?控制台中没有出现错误。
答案 0 :(得分:2)
$("#text").val
是一个函数,你应该调用它。
也就是说,jQuery对于这样一个微不足道的任务来说是非常难以理解的:
document.getElementById('one').onclick = function() {
document.getElementById('text').value += "\u00bf";
}
请注意,\u00bf
是十六进制中¿ - bf
为191
的适当JavaScript转义序列。
编辑:或者,只需按住Alt并在键盘上输入0191即可。这将直接在你输入的地方产生¿,而不是在你的JS所做的输入结束时产生。
答案 1 :(得分:0)
试试这个。在你的小提琴里工作。
$(function() {
$('#one').on('click', function() {
$('#text').val($('#text').val() + "¿");
});
});
更新:我发布了问题的西班牙语符号而不是ASCII,将$(document).ready
更改为更短的$(function()
,并在val()
之后添加了括号。