为什么空()不能处理搜索栏中的输入?

时间:2017-06-08 09:09:03

标签: javascript jquery html

点击inviteButton时,输入搜索栏应该清除,但它不适用于我当前的代码。

我是否错误地定位了该元素?

	$("#inviteButton").click(function(){
		var userName = $("#searchUser").val();
		if (userName.trim() != "") {
 			if (userName == myUserName) {
				$("#connectToBox").append("You can't invite yourself");
				$("#searchUser").empty(); // Doesn't work
			} else {
				socket.emit("checkUserConnect", userName, function(data){
 				if (data.result === undefined) {
 					console.log("No name");
 					$("#connectToBox").append("User does not exist");
 					$("#searchUser").empty(); // Doesn't work
 				} else {
 					console.log("name exists");
 					$("#searchUser").empty(); // Doesn't work
 					$("#connectToBox").append("Invite send");
 					UserID = data.result.id;
 					socket.emit("connectToUser", myUserName, UserID, currentConversation);
 				}
 				});
			}
		}
	});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="connectToBox">
				<label for="search-2">Type in username</label>
				<input type="search" name="search-2" id="searchUser" value="">
				<a href="#" id="inviteButton" data-role="button" data-inline="true">Connect</a>
			</div>

3 个答案:

答案 0 :(得分:2)

要清空通常使用的输入字段: $( '#searchUser')。VAL( '') Empty用于从div或p标签等元素中清除子节点,但不用于输入。 原因是输入中的文本不表示为元素的子节点,而是存储在输入标记的html属性中。因此.empty()不能用于清除值。

答案 1 :(得分:2)

您可以使用

清除输入字段
$('#searchUser').val('');

答案 2 :(得分:1)

$('#searchUser').val('');

根据您的应用,这将正常工作。

  

empty()方法从所选元素中删除所有子节点和内容。 Src: W3Schools

根据您的要求,您需要重置输入字段的值,因为我们有val()功能。您可以指定一个空字符串,它将正常工作。 使用empty()不会在这里工作。

检查这些示例 -

  • empty()正常工作 -

&#13;
&#13;
function emptyOperation(){
    $("div").empty();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="text" id="input-field" value="Random string">
</div>
<button onclick="emptyOperation()">Check</button>
&#13;
&#13;
&#13;

  • empty()根据您的代码[赢了工作] -

&#13;
&#13;
function emptyOperation(){
    $("#input-field").empty();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="text" id="input-field" value="Random string">
</div>
<button onclick="emptyOperation()">Check</button>
&#13;
&#13;
&#13;

  • 解决您的问题 -

&#13;
&#13;
function emptyOperation(){
    $("#input-field").val('');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="text" id="input-field" value="Random string">
</div>
<button onclick="emptyOperation()">Check</button>
&#13;
&#13;
&#13;