我正在尝试使用jQuery的typeWatch插件。我有这个javascript:
<script type="text/javascript">
$(document).ready(function() {
var options = {
callback: function() { alert("a-ok! " + $(this).text); },
wait: 333,
highlight: true,
captureLength: 1
}
$("#customer").typeWatch(options);
});
</script>
我的观点的HTML有这个:
Method B: <%= Html.TextBox("customer") %>
通过此测试,如果我在文本框中键入“ABC”,我希望弹出“a-ok!ABC”的警告。相反,以下显示......
a-ok! function (F) {
if (typeof F !== "object" && F != null) {
return this.empty().append((this[0] && this[0].ownerDocument ||
document).createTextNode(F));
}
var E = "";
o.each(F || this, function () {o.each(this.childNodes, function () {
if (this.nodeType != 8) {
E += this.nodeType != 1 ? this.nodeValue : o.fn.text([this]);}});});
return E;
}
我已经尝试将$(this).text更改为.val,并且我还尝试将输入字段更直接地引用为$(“#customer”),但它们会产生类似的结果。如何只访问输入的文本?
答案 0 :(得分:5)
您应该在文本框中使用val()函数:
$(this).val();
答案 1 :(得分:1)
查看typeWatch版本2.0的代码,我发现了这个:
function checkElement(timer, override) {
var elTxt = jQuery(timer.el).val(); <----------- !!! this...
// Fire if text > options.captureLength AND text != saved txt OR if override AND text > options.captureLength
if ((elTxt.length > options.captureLength && elTxt.toUpperCase() != timer.text)
|| (override && elTxt.length > options.captureLength)) {
timer.text = elTxt.toUpperCase();
timer.cb(elTxt); <-------------- !!! ...goes here.
}
};
timer.cb是您在选项中设置的回调。因此,您只需在您使用的回调函数中添加一个参数,该参数将是输入中的文本。