【问题标题】:I want to be able to see the 'displayrmuform' when rmuboolean and effectivedate (right after inputting date) is not null当 rmubolean 和有效日期(输入日期后)不为空时,我希望能够看到“displayrmuform”
【发布时间】:2009-07-08 13:24:36
【问题描述】:

代码如下:
在从有效日期计算日期后,此函数调用“displayRmuForm”。 它不工作:(

var displayRmuForm = function() {
    var txtEffectiveDate= $get('ctl00_ContentPlaceHolder1_DetailsView1_txtEffectiveDate');

    if (!rmuVisible && txtEffectiveDate.value.length > 0 ) {
        $(".container").show(250);

    } else { 
        $(".container").hide(250); 
    }
    rmuVisible = !rmuVisible;
}


var effectiveDate_blur = function(e) {
    var effectiveDate = null;
    if (this.value.length > 0) {
        effectiveDate = new Date(eval('"' + this.value + '"'));
        setRmuDates(effectiveDate);
        displayRmuForm();
    }
}

【问题讨论】:

  • “不工作”是什么意思 - 如果出现错误,请列出。
  • 它没有调用 'displayRmuForm' - 没有错误 :)

标签: javascript


【解决方案1】:

尝试使用e.target 而不是this

更安全:调用事件处理程序,将 'this' 的值作为另一个参数传递。


(免责声明:我不是 JS 开发人员)

【讨论】:

  • 参见。 quirksmode.org,对于 dom 事件还有更多的检查要做。这就是为什么我建议将其作为函数参数传递,例如onclick='effectiveDate_blur (this)' 然后你就有了 .value.length 正确的基础。您可以随时插入 debugger 语句,以便单步执行该代码以查看问题所在
【解决方案2】:

它是否调用了你的模糊处理程序? (调试或发出警报之类的)

您还没有向我们展示您是如何将函数连接到事件的,所以它可能很简单,浏览器甚至不知道调用 EffectiveDate_blur() 函数。

【讨论】:

    【解决方案3】:

    尝试像这样在您的模糊处理程序中强制 rmuVisible 为假...我认为该函数正在触发,但未满足显示您的表单的条件。

    var effectiveDate_blur = function(e) {
        var effectiveDate = null;
        if (this.value.length > 0) {
            effectiveDate = new Date(eval('"' + this.value + '"'));
            setRmuDates(effectiveDate);
            **rmuVisible = false;**
            displayRmuForm();
        }
    }
    

    【讨论】:

    • 它正在改进,但我仍然需要在页面上执行 EXTRA CLICK 以在“displayRMUForm”上显示日期。有什么方法我不必做额外的点击?感谢您的输入。 :)
    • 在用户在您的生效日期字段中输入值之前禁用您的 rmu 复选框怎么样?然后,您可以触发复选框上的 check() 或 click() 事件并弹出表单。他们根本不必单击复选框。仅当您选择有效日期时隐含“rmu”时,这才有效。如果没有任何要求,我们无法了解您的应用程序的业务规则。也许只是禁用您的复选框,然后在 EffectiveDate_blur 函数中启用它。允许用户单击它并弹出您的表单。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 2021-01-18
    相关资源
    最近更新 更多