我的代码中有一个输入字段:<input type=text name=code id=code>
。
我想要做的是在用户在字段中输入时将特定文本转换为另一个文本。
让我解释一下。当用户在输入中输入 31546 时,我希望该文本直接转换为 HELLO 。
我知道这可以使用JavaScript / jQuery完成,但我对如何实现这一点没有任何想法。我怎么能?
<子> P.S。如果使用textarea更容易,我可以将输入更改为textarea。
编辑: 我从this StackOverflow post获得了一个代码,用于检测元素的任何更改,
$('.myElements').each(function() {
var elem = $(this);
// Save current value of element
elem.data('oldVal', elem.val());
// Look for changes in the value
elem.bind("propertychange change click keyup input paste", function(event){
// If value has changed...
if (elem.data('oldVal') != elem.val()) {
// Updated stored value
elem.data('oldVal', elem.val());
// Do action
....
}
});
});
但我不确定如何利用它来满足我的需求。
请关注我,因为我还是这个领域的初出茅庐。
谢谢。
答案 0 :(得分:1)
一个选项是为输入设置keyup事件,然后在用户输入时替换值。例如:
$('input').keyup(function () {
var val = $(this).val();
var newVal = val.split('31546').join('HELLO');
if (newVal !== val) {
$(this).val(newVal);
}
});
答案 1 :(得分:0)
您可以将keyup事件用作
$(document).on('keyup', '#code', function() {
$('#code').val(convertedValue($('#takeInput').val()));
})
function convertedValue(val) {
return 'hello';
}
答案 2 :(得分:0)
这可能会对您有所帮助: -
<input type="text" id="code">
$('#code').bind('change click keyup onpaste', function(ele){
var origVal = ele.target.value;
if(origVal.indexOf("123") !== -1){
ele.target.value = origVal.replace("123","Hello");
}
});