【问题标题】:Adding an keyUp-event to form objects添加 keyUp 事件以形成对象
【发布时间】:2011-02-08 19:01:18
【问题描述】:

大家好,

我遇到了将浏览器事件添加到某些输入字段的问题。我必须面对的挑战是,我的目标函数的一个参数是“事件”变量,第二个参数是对象。

为了更好地理解这里的一些代码:
HTML 对象:

<div id="1_dateFieldAdvanced" class="xp set">
    <div id="1_dateFieldAdvanced_label" class="label">Birthday</div>
    <div id="1_dateFieldAdvanced_value" class="value date">
        <input class="day" name="dayOfBirth" value="66" maxlength="2" type="text">
        <input class="month" name="monthOfBirth" value="67" maxlength="2" type="text">
    <input class="year" name="yearOfBirth" value="" maxlength="4" type="text">
    </div>
</div>

目标方法的源码如下:

function advancedDateFields(currentFieldAsObject, nextField, currentValueLength, ev){}

不幸的是,HTML 和 Javascript 代码是自动生成的,所以我无法重构代码。我的问题是,如何传递关键字“事件”和其他参数?我的尝试总是失败。 :-(

【问题讨论】:

    标签: javascript jquery parameter-passing


    【解决方案1】:

    怎么样

    $("input:text","#dateFieldAdvanced_value").bind("keyup", function(e){
        var currentElem = $(this);
        var currentValLength = currentElem.val().length;
    });
    

    我不确定你所说的下一个字段是什么意思。

    另外,您的 ID 无效。 Id 不应以数字开头。于是我把1_dateFieldAdvanced_value改成了dateFieldAdvanced_value

    【讨论】:

    • 您好,感谢您的回答。如果您查看 html 代码,您可以看到三个输入字段。我的目标是将 keyup 事件添加到每个输入字段。参数'nextField'表示当前集合中下一个输入字段的名称。
    • 知道了。使用方法 'next()' 我完成了这个问题。
    【解决方案2】:

    你可以调用函数onkeypress: 示例:

    函数(事件){ 自定义方法(事件,obj); }

    我希望这会有所帮助..

    【讨论】:

    • 您好,感谢您的回答。我也尝试过这种方式,但是 Firefox 浏览器不传递事件变量,而 Internet Explorer 不传递 obj 变量。这就是我问你的原因。
    • 好的,让我解释一下你在输入框中添加 onkeyup 事件并像这样添加
       testMethod(event, this); 
      事件是onkeyup 事件,这是对对象的引用,你现在只需要创建“testMethod”
       function testMethod(e, obj) { //你的代码在这里 }
    • 顺便说一下,我在 ie6 和 firefox 中尝试过这个。它正在工作
    【解决方案3】:
    function lookup(inputString) {
            if(inputString.length == 0) {
                // Hide the suggestion box.
                $('#suggestions').hide();
            } else { 
    // Show the suggestion box.
                $('#suggestions').show();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      相关资源
      最近更新 更多