我正在努力学习JS,所以请原谅我,如果你的代码让世界爆炸。 无论如何,我正在尝试制作类似于SO的标记系统界面。用户在单词中键入的内容和SO在逗号上分隔(或在空格键上但我不想这样)。
我正在使用jQuery访问DOM(因为它更容易),我知道有各种plugins可以做到这一点并为无家可归者提供食物,但正如我所说,我想学习。< / p>
这是我到目前为止所拥有的:
<input type="textbox" name="somebox" id"someid">
$(document).ready(function() {
var startPos = 0;
$("#someid").keyup(function() {
var inputText = $(this).val();
var commaPosition = inputText.indexOf(",", startPos);
var foundWords = [];
alert('Hello'); // even this doesn't work... why???
if (commaSearch !== '-1') {
// take the word:
foundWords.push(inputText.slice(startPos,commaPosition));
startPos = commaPosition + 1;
}
});
});
It can also be found here。似乎没有什么工作,甚至没有警报。任何帮助都会很感激。
答案 0 :(得分:2)
问题:
=
和id
之间错过了"someid"
。这将使alert()
工作。String.split(',')
而不是String.indexOf(',')
。拆分和删除额外的空格:inputText.split(/\s*,\s*/g)
答案 1 :(得分:0)
这是你想要的吗?
$(document).ready(function() {
$("#someid").keyup(function() {
var inputText = $(this).val();
var foundWords = inputText.split(","); // or as posted elsewhere split(/\s*,\s*/g)
if (foundWords.length>1) $("#tags").html(foundWords.join(";"))
});
});
答案 2 :(得分:0)
你会笑,但你=
前面没有id=someid
:D http://jsfiddle.net/SuperPhil/9KVs4/2/
答案 3 :(得分:0)
this你想要的是什么吗?
正如Matt Ball所指出的那样,你在HTML中的=
之后错过了id
符号。接下来,您使用commaPosition
然后commaSearch
。接下来,使用带有数字和字符串的not-identity运算符,它始终返回false
。