使特定于一个输入的函数应用于所有输入的正确jQuery语法是什么?

使特定于一个输入的函数应用于所有输入的正确jQuery语法是什么?,jquery,function,syntax,webforms,listeners,Jquery,Function,Syntax,Webforms,Listeners,这是一个与我的问题相关的持续问题,如果你想了解一些背景知识的话 我是一个初学者和自私自利的web程序员,希望将函数放在jQuery中,以便使函数在任何集中的输入/元素中工作 我从这里开始,使用了三个功能,但只在上起作用:id=“dataInput\u 0” 我询问并收到了关于如何使用jQuery监听器的好提示和信息,这些监听器可以将函数应用于具有给定类的任何单元格。但是,我只能在这里找到如何应用聚焦和模糊功能: <script type="text/javascript"> $(

这是一个与我的问题相关的持续问题,如果你想了解一些背景知识的话

我是一个初学者和自私自利的web程序员,希望将函数放在jQuery中,以便使函数在任何集中的输入/元素中工作

我从这里开始,使用了三个功能,但只在
上起作用:
id=“dataInput\u 0”


我询问并收到了关于如何使用jQuery监听器的好提示和信息,这些监听器可以将函数应用于具有给定类的任何
单元格。但是,我只能在这里找到如何应用聚焦和模糊功能:

<script type="text/javascript">
$(document).ready(function(){
    $('.classOne').keypress(function(e){
        if (e.which == 13) 
        {
            alert ( "message-return key not allowed");
            return false;
        }
    });
    $('.classOne').focus(function() {
        var d = this;
            d.className = d.className + " InFocus";
   });
    $('.classOne').blur(function() {
        var d = this;
            d.className = "classOne";
   });
})
</script>

$(文档).ready(函数(){
$('.classOne')。按键(功能(e){
如果(e.which==13)
{
警报(“不允许使用消息返回键”);
返回false;
}
});
$('.classOne').focus(函数(){
var d=这个;
d、 className=d.className+“InFocus”;
});
$('.classOne').blur(函数(){
var d=这个;
d、 className=“classOne”;
});
})
现在的代码是:

<textarea
    data-id="0"
    class="classOne classTwo"
    id="dataInput_0"
    name="xInput_row_1"
        onKeyUp="functionThree();">
</textarea>

functionThree()是这里的技巧包。由于我对语法的理解有限(不存在?),所以将javaScript函数移动到jQuery时遇到了问题

javaScript函数与标识分隔符和拆分从Excel复制的数据相关,然后将这些数据粘贴到大量的
s中

代码:


函数三(){
var x=document.forms[“formName”][“dataInput_0”]值;
如果(x.indexOf('\t')>0&&x.indexOf('\n')>0){
警报(“无法在块中粘贴行和列,等等,等等消息”);
document.forms[“formName”][“dataInput_0”]。value=“”;
返回false;
}
其他的
如果(x.indexOf('\t')>0){
var delimiterT=x.split('\t');
for(变量i=0;i0){
var delimiterN=x.split('\n');
var j=0;
for(变量i=0;i
j+=4是因为我假设一个示例表单有4列。如果我有24列,显然我将
j+=24
进入焦点下的下一个

因此,上面的javaScript只适用于
[“dataInput\u 0”]
,我希望它适用于任何关注的

正确的jQuery语法可能是什么


提前谢谢

您可以用类似的方式绑定keyup事件处理程序,但在functionThree中,只需使用$(this).val()来获取textarea值。有了jquery,您还可以摆脱所有那些getElementById

$('.classOne').on({ 
keypress: function(){...},
focus: function(){...},
blur: function(){...},
keyup:function(){
var x = $(this).val();
    if (x.indexOf('\t') > 0 && x.indexOf('\n') > 0) {
    alert ("Can't paste rows & Columns in blocks, blah, blah, blah message");
    $(this).val("");
    return false;
    }
    else 
     if (x.indexOf('\t') > 0) {
         var delimiterT = x.split('\t');
         for (var i = 0; i < delimiterT.length ; i++)
            $("#dataInput_" + i).val(delimiterT[i]);
     }
     else
         if (x.indexOf('\n') > 0) {
             var delimiterN = x.split('\n');
             var j = 0;
             for (var i = 0; i < delimiterN.length ; i++) {

                 $("#dataInput_" + j).val(delimiterN[i]);
                 j += 4;
             }
         }
         else
             return false;
}
})
$('.classOne')。在({
按键:函数(){…},
焦点:函数(){…},
blur:function(){…},
keyup:function(){
var x=$(this.val();
如果(x.indexOf('\t')>0&&x.indexOf('\n')>0){
警报(“无法在块中粘贴行和列,等等,等等消息”);
$(此).val(“”);
返回false;
}
其他的
如果(x.indexOf('\t')>0){
var delimiterT=x.split('\t');
for(变量i=0;i0){
var delimiterN=x.split('\n');
var j=0;
for(变量i=0;i
作为旁白,
$(this.addClass(“InFocus”)
是焦点处理程序中所需的全部内容<代码>$(this.removeClass(“InFocus”)是模糊处理程序中所需的全部内容。但我建议从这个问题中删除这些处理程序的代码,因为它们正在工作,并且与您实际询问的问题无关。另外请注意,如果未找到指定的字符串,则
indexOf()
将返回
-1
。谢谢@paulito,我还不太清楚。您提供的解决方案和语法很棒,但从粘贴到#dataInput_0中的情况来看,它只起作用。我越来越喜欢这个:
else如果(x.indexOf('\t')>0){var delimiterT=x.split('\t');var di=$(this.attr('data-id');for(var I=0;I
<script type="text/javascript">
     function functionThree() {
        var x = document.forms["formName"]["dataInput_0"].value;
        if (x.indexOf('\t') > 0 && x.indexOf('\n') > 0) {
        alert ("Can't paste rows & Columns in blocks, blah, blah, blah message");
        document.forms["formName"]["dataInput_0"].value = "";
        return false;
        }
        else 
         if (x.indexOf('\t') > 0) {
             var delimiterT = x.split('\t');
             for (var i = 0; i < delimiterT.length ; i++)
                document.getElementById("dataInput_" + i).value = (delimiterT[i]);
         }
         else
             if (x.indexOf('\n') > 0) {
                 var delimiterN = x.split('\n');
                 var j = 0;
                 for (var i = 0; i < delimiterN.length ; i++) {

                     document.getElementById("dataInput_" + j).value = (delimiterN[i]);
                     j += 4;
                 }
             }
             else
                 return false;
     }
</script>
$('.classOne').on({ 
keypress: function(){...},
focus: function(){...},
blur: function(){...},
keyup:function(){
var x = $(this).val();
    if (x.indexOf('\t') > 0 && x.indexOf('\n') > 0) {
    alert ("Can't paste rows & Columns in blocks, blah, blah, blah message");
    $(this).val("");
    return false;
    }
    else 
     if (x.indexOf('\t') > 0) {
         var delimiterT = x.split('\t');
         for (var i = 0; i < delimiterT.length ; i++)
            $("#dataInput_" + i).val(delimiterT[i]);
     }
     else
         if (x.indexOf('\n') > 0) {
             var delimiterN = x.split('\n');
             var j = 0;
             for (var i = 0; i < delimiterN.length ; i++) {

                 $("#dataInput_" + j).val(delimiterN[i]);
                 j += 4;
             }
         }
         else
             return false;
}
})