我尝试了所有可以找到的替代示例,并且无法使其发挥作用。我可能错误地实现了它。非常感谢任何帮助。
我的问题:
我有一个函数,如果textarea中的特定值,则表示要向其发送警报。
如果用户键入textarea,则此函数有效,但值通常从另一页传入。如何在不要求它们与文本区域交互的情况下运行它?
这是我在JSFiddle上的例子:Example
以下是便于阅读的HTML / JS代码:
HTML
<!doctype html>
<html>
<head>
<title>Alert Test</title>
</head>
<body>
<div class="controls">
<textarea name="q" class="span12" id="textarea" rows="5">one:</textarea>
</div>
Test alert:
<div class="alert alert-error" id="alert" name="alert" style="display: none;">
This is a test alert.
<a href="#" class="close" data-dismiss="alert">×</a>
</div>
</body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="textAreaReader.js"></script>
</html>
JS:
$(document).ready(function(){
$('#textarea').on('change keyup paste', function() {
var lines = $('#textarea').val();
var fields = ["one", "two", "three"];
var leng;
for (var i=0; i < fields.length; i++) {
if (lines.indexOf(fields[i] + ':') !== -1){
leng = 1;
}
}
if (leng == 1){
$("#alert").slideDown("fast"); //Slide Down Effect
}else{
$("#alert").slideUp("fast"); //Slide Up Effect
}
});
});
答案 0 :(得分:5)
将函数分配给变量可以将它传递给textarea处理程序并在页面加载时运行它。
$(document).ready(function () {
var slide = function () {
…
};
$('#textarea').on('change keyup paste', slide);
setTimeout(slide, 500);
});