jquery - 添加异常onclick

时间:2011-08-25 11:25:12

标签: javascript jquery

我有以下输入字段:

<input type="text" value="5" maxlength="12" id="qty" class="input-text qty" name="qty2050" tabindex="1">

<input type="text" value="0" maxlength="12" id="qty" class="input-text qty" name="qty2042" tabindex="1">

我使用此代码来防止用户丢失插入的数据(退出页面时):

<script>
window.onbeforeunload = function() {
    var showAlert = false;
    jQuery('.input-text.qty').each(function (){

        //console.log("fonction 1");
        var val = parseInt(jQuery(this).val(),10);
        if(val > 0) { showAlert = true; } 
        //alert(val);
    });

    //console.log("fonction 2");
    //console.log(showAlert);

    if (showAlert == true) {
        console.log("fonction 3");
        return 'You have unsaved changes!';
    } 
}

</script>

我想在我的提交按钮中添加一个例外,并且当数量为&gt时不显示警告消息在我的一个输入字段中为0。

我的问题是添加此异常!

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这就是你想要的:

<SCRIPT> 
function checkForm(e) { 
   if (!(window.confirm("Do you want to submit the form?"))) 
     e.returnValue = false; 
 } 
</SCRIPT>
</HEAD>
<BODY>
<FORM name="theForm" action="0801.html" 
   onSubmit = "return checkForm(event)">
<INPUT type=submit>
</FORM>

在这种情况下,您的检查将进入checkForm方法

答案 1 :(得分:0)

您可以使用bool confirmUnload。就像这里:http://jonstjohn.com/node/23

<script>
var confirmUnload = true;

$("submit").click(function(){ confirmUnload = false; });

window.onbeforeunload = function() {
    if (confirmUnload)
    {
        var showAlert = false;
        jQuery('.input-text.qty').each(function (){

            //console.log("fonction 1");
            var val = parseInt(jQuery(this).val(),10);
            if(val > 0) { showAlert = true; } 
            //alert(val);
        });

        //console.log("fonction 2");
        //console.log(showAlert);

        if (showAlert == true) {
            console.log("fonction 3");
            return 'You have unsaved changes!';
        }
    } 
}

</script>