文本框值返回奇怪的代码而不是其中的内容

时间:2018-01-27 17:33:21

标签: javascript jquery textbox character add

当我想在现有文本框中添加笑脸时,我发现了一些问题。代码



	$cnt=$("#comContent").val
	
	$("#addSmiley").click(function() {
		console.log($cnt);
		$cnt = $cnt + ":)";
		console.log($cnt);
	});

#comContent {
	width: 100%;
	height: 120px;
	border: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">

<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
&#13;
&#13;
&#13;

基本上我想要做的是,在用户点击笑脸图标后,代码应该添加&#39;:)&#39;到文本框。我添加了console.log来查看它为什么不添加任何东西。然后我看到了这个:

function (a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(gb,""):null==c?"":c)}}:)

我认为这将是一个简单的代码,但我不知道它有什么问题,以及它为什么不起作用

2 个答案:

答案 0 :(得分:0)

$cnt=$("#comContent").val();
	
	$("#addSmiley").click(function() {
		console.log($cnt);
		$cnt = $cnt + ":)";
		console.log($cnt);
	});
#comContent {
	width: 100%;
	height: 120px;
	border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">

<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>

在.val中添加括号。比如$ cnt = $(“#comContent”)。val();

答案 1 :(得分:0)

问题

  • 您只获得了函数val
  • 的引用
$("#comContent").val // This line gets the implementation of function `val`

解决方案

  • 您真正想要的是执行该功能,因此您需要按以下方式调用它:$("#comContent").val()

查看此代码段:

$cnt = $("#comContent").val();

$("#addSmiley").click(function() {
  console.log($cnt);
  $cnt = $cnt + ":)";
  console.log($cnt);
});
#comContent {
  width: 100%;
  height: 120px;
  border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">

<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>

请参阅,现在您正在调用函数val并获得预期值。