【问题标题】:stop page from postback onkeypress event从回发 onkeypress 事件停止页面
【发布时间】:2012-09-24 19:22:20
【问题描述】:

我有一个单页 asp.net 4.0 表单,其中包含我以编程方式显示/隐藏的 div 中的几个文本框。在我的表单上的一个特定文本框中,onkeypressevent 定义如下

<fieldset>
    <div class="WizardStepDiv">
        <label for="MobileNumber">
            Please enter your mobile number</label>
        <%--<asp:TextBox name="vmobilenumber" ID="vmobilenumber" runat="server" Style="width: 150px"></asp:TextBox>--%>
        <input type="text" name="vmobilenumber" id="vmobilenumber" runat="server" style="width: 150px"
            onkeypress="javascript: return searchKeyPress(event);" />
    </div>
    <div class="navigationArrows">
        <div style="margin-left: 35%; width: 165px;">
            <div class="previousbutton" style="float: left; padding: 3px 0 0 6px">
                <a href="#" onclick="NavigatetoPreviousScreen()">
                    <img src="image/left_arrow.png" width="18" height="25" alt="navigateprevious" style="background-image: url(image/arrow_box.png)" />
                </a>
            </div>
            <div class="nextbutton" style="float: right; padding: 3px 0 0 6px">
                <a href="#" id="searchMobileNumber" onclick="NavigatetoNextScreen()">
                    <img src="image/right_arrow.png" width="18" height="25" alt="navigatenext" style="background-image: url(image/arrow_box.png)" />
                </a>
            </div>
        </div>
    </div>
</fieldset>

searchKeyPress(event) 是这样定义的

function searchKeyPress(e) {
// look searchcheckoutKeyPress for window.event in case event isn't passed in
if (typeof e == 'undefined' && window.event) { e = window.event; }
if (e.keyCode == 13) {
    document.getElementById('searchMobileNumber').click();
    if (e.stopPropagation) {
        e.stopPropagation();
    } else {
        e.cancelBubble = true;
    }
  (event.preventDefault) ? event.preventDefault() : event.returnValue = false;
}

}

NavigatetoNextScreen() 函数验证手机号码文本框是否为空,如果它通过验证,它会像这样进行 ajax 调用(以下部分被剪掉)

    var mobilenumber = $.trim($("#vmobilenumber").val());
        if (mobilenumber == "" || !isNumber(mobilenumber)) {
            error += "<span>Please enter a valid mobile number to proceed to the next step</span></br>";

        }
        if (error == "") {
            $("#errormessage").hide();
            methodName = "GetVistorByMobileNumber";
            $.support.cors = true;
            $.ajax({
                type: 'GET',);

当出现验证错误时,页面不会回发,但是在 ajax 调用中返回成功或错误(在两种情况下都处理完之后)我不想要的网页回发。

此行为仅适用于 Firefox、Chrome 和 IE不回发。可能是什么问题?

提前感谢您的帮助

【问题讨论】:

    标签: javascript asp.net firefox postback onkeypress


    【解决方案1】:
    <a href="#" id="searchMobileNumber" onclick="NavigatetoNextScreen()">
    

    在这个函数YouNavigatetoNextScreen(evt)中传递事件对象并调用evt.preventDefault();

    function YouNavigatetoNextScreen(){
       //... your code
       evt.preventDefault();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多