将值传递给外部函数JQuery

时间:2016-10-01 16:05:30

标签: javascript jquery html

我尝试为我的所有文档创建外部常规功能。该函数我想用“this”方法在函数内部工作,“this”值来自差异按钮。但是这段代码对我不起作用。如何解决它。

jQuery代码:

function myFunction(e){ 
    var inp = $(this).val(), target = e.target, position = target.selectionStart;
    inp = inp.replace(/a/g, "A");
    inp = inp.replace(/i/g, "I");
    inp = inp.replace(/u/g, "U");
    inp = inp.replace(/e/g, "E");
    $(this).val(inp);
    $(this).get(0).setSelectionRange(position, position );
}

使用jQuery将值发送到外部函数

$(document).ready(function(){
    $('#Search').keyup(myFunction('#Search'));
});

HTML代码:

<form name="inputform">
    <input class="Search" type="text" autofocus name="searchbox"  id="Search" style="width:800px; height:200px;">
</form>

如果我直接放置文本框ID,它工作正常。

2 个答案:

答案 0 :(得分:1)

您的功能是回电; jQuery将事件信息传递给您的回调。

所以当你这样做时:$('#Search').keyup(myFunction('#Search'));

发生了什么(myFunction()('#Search'))(e),这不是你想要的。 e是来自jQuery传递的key up事件侦听器的事件信息。

如果你想传入#搜索&#39;你可以创建一个抛弃这个e并传递你想要的内容的函数,就像这样。

$('#Search').keyup(function(e){
    myFunction('#Search');
});

但是你的功能是不是在听一个字符串,它会监听事件信息,所以你可以这样做

$('#Search').keyup(myFuction)

答案 1 :(得分:0)

您不需要将#Search作为myFunction的参数传递,例如myFunction('#Search')。你可以像下面这样做。

$('#Search').keyup(myFunction);