使用jquery更改输入字段值的问题

时间:2014-05-19 16:49:54

标签: javascript jquery html

HTML

<div id="wrapper">
<p>This is a basic tag input: 
    <input id="tag1" value="alpha,beta,gamma" />
</p>
</div>
<textarea id="tagdetect"></textarea>

脚本

$("#tagdetect").live("keydown",function(){

    var textTyped=$("#tagdetect").val();
    var text=textTyped.split(" ");
    for(i=0;i<text.length;i++){

        if(text[i]=="sql"||text[i]=="html"||text[i]=="java"){

            $("#tag1").val()=text[i];
        }
    }
});

我想要实现的目标

我正在尝试在检测到某些关键字时在该输入字段中添加标记(即值)

工作版

http://jsfiddle.net/7aDak/4839/

4 个答案:

答案 0 :(得分:2)

您的jQuery语法中有错误。

更改以下行

$("#tag1").val()=text[i];

对此:

$("#tag1").val(text[i]);

答案 1 :(得分:0)

设置您应该使用的值:

 $("#tag1").val(text[i])

答案 2 :(得分:0)

函数.val()需要包含要追加的参数:

var value = $("#tag1").val();
$("#tag1").val(value + text[i]);

答案 3 :(得分:0)

我认为除了修复错误之外,这更优雅 - 假设您想要字段中的所有标记

var types = ["sql","html","java"];

$("#tagdetect").on("keydown",function(){

  var textTyped=$("#tagdetect").val();
  var text=textTyped.split(" ");
  $.each(text,function(_,txt) {
    if ($.inArray(txt,types)!=-1) $("#tag1").append(txt+" ");
  });
});