JavaScript回发条件

时间:2009-12-08 20:32:06

标签: asp.net javascript

我需要帮助下面的javascript。我的表单上有2个文本框和1个按钮。我想要发生的是,如果用户在文本框中输入值而不是文本框2,则不需要触发事件。但是,如果文本框中有一个值,然后是文本框2,那么我想要回发一个帖子。我的下面的代码似乎根本没有这样做,如果有人可以帮我解决这个问题或者更好的解决方法,我会很感激。提前致谢

function Changed(textControl) {
    //  alert(textControl.value);
    var conlength = document.getElementById('<%=txtLength.ClientID %>');
    var conwidth = document.getElementById('<%=txtwidth.ClientID %>');
    if (conlength != null && conwidth != null) {
        if (conlength.value != null && conlength.value != ' ' && conwidth.value != null && conwidth.value != ' ') {
            // ' ' corresponds to c#'s String.Empty                
            __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired');
        }
    }
}

4 个答案:

答案 0 :(得分:1)

您需要查看VALUE的长度,而不是元素本身:

var conlength = document.getElementById('<%=txtLength.ClientID %>').value;

答案 1 :(得分:0)

为什么不采取更简单的方法...如果您的条件得到满足,以编程方式单击您的提交按钮;-)即使您遇到类似的事情,使用像jquery这样的东西也非常简单:

$("#<%=btncalcboardfeet.ClientID %>").click();

这样你就不必试图找出asp.net试图调用的内部javascript函数(因为这可能在将来发生变化(但不太可能))。

编辑:非jQuery版本:

document.getElementById("<%=btncalcboardfeet.ClientID %>").click();

答案 2 :(得分:0)

而不是最后一个if语句只是尝试以下内容:

if (conlength.value && conwidth.value) {
            // ' ' corresponds to c#'s String.Empty                
            __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired');
}

答案 3 :(得分:0)

如果您正在使用ASP.NET WebForms并使用asp:TextBox来收集信息,则可以使用RequiredFieldValidator确保两个字段在页面回发之前都有值。