我需要翻译textarea
中的文本。当我按下space
键时,会在该字段&中的文本中进行ajax请求,然后替换为响应文本。textarea - 将光标移到光标前并替换它
但是,如果我只是在空格&之前用单个单词进行ajax请求,那么将会更好,然后用响应词替换该单词。这样我可以逐字地翻译&,这正是我需要的。
任何想法?如果您有任何问题,请分享。
我需要翻译textarea
中的文本。当我按下space
键时,会在该字段&中的文本中进行ajax请求,然后替换为响应文本。textarea - 将光标移到光标前并替换它
但是,如果我只是在空格&之前用单个单词进行ajax请求,那么将会更好,然后用响应词替换该单词。这样我可以逐字地翻译&,这正是我需要的。
任何想法?如果您有任何问题,请分享。
功能如果空格键被按压(键代码32)getLast返回最后一个字中的textarea
function getLast(o) {
return ("" + o).replace(/[\s-]+$/, '').split(/[\s-]/).pop();
}
,然后调用textarea的值的getLast功能。然后让一个AJAX调用传递最后一个字作为变量。
$('#textArea').keyup(function(e) {
if (e.keyCode == 32) {
var textArea = $('textArea');
var word = getLast(textArea.val());
$.ajax({
type: "POST",
url: "index.cfm?fuseaction=user.test2",
data: {
currentWord: word
}
}).done(function(translation) {
var translatedWord = $.trim(translation);
var string = textArea.val();
string = string.replace(word, translatedWord);
textArea.val(string);
});
}
});
但是,我觉得你最好的选择是在整个文字结尾处翻译整个textarea。
+1,看起来不错!更新单词怎么样?如果我继续打字并且不等待响应被替换,该怎么办? – sha256
我想你知道如何检索文本输入中的字符串。
要隔离最后一个单词,必须在字符串末尾附近寻找包含单词字符的非单词字符。我建议使用Regular Expressions
备注:这不是一个答案元素,但我认为逐字逐句翻译不是一个好主意,并且将翻译输出放在与输入相同的区域可能会非常痛苦。您应该进行全局翻译,并将输出结果显示在屏幕上的其他位置,并在输入发生变化时更新它,例如Google翻译。
但是,如果您发布代码会更好 –
我尝试了我在第一段中所说的内容。还没有尝试过第二段。需要想法。 – sha256