我正在使用jquery ajax调用在btn单击上提交表单。我正在做表单验证,如果输入无效,则需要停止ajax调用。我尝试了以下代码,但是即使条件失败,表单也会每次提交

<script type="text/javascript">
    $(document).ready(function () {

        $('#btnSubmit').click(function (evt) {
            if (ValidateUserInput()) {
                $.ajax({
                    type: 'GET',
                    url: '@Url.Action("SearchResults", "Request")',
                    data: { searchTerm: $("#searchTerm").val(), searchFilter: $("#searchFilter").val() },
                    success: function (data) {
                        $('#Results').html(data);
                    }
                });
            }

        });

    });

    function ValidateUserInput() {

        if ($('#searchFilter').val() == 'RequestId' && $('#searchTerm').val() != parseInt($('#searchTerm').val())) {
            $('#HiddenInvalidInputContainer').show();
            return false;

        }
        else {
            alert('testing');
            $('#HiddenInvalidInputContainer').hide();
            return true;
        }

    }

</script>


有任何想法吗?

最佳答案

您总是会得到else子句,因为对于一个数字而言,这始终是错误的

$('#searchTerm').val() != parseInt($('#searchTerm').val()


"1" != parseInt("1")为假,"1" !== parseInt("1")为真

如果您要测试非数字,则可以使用isNaN()

关于javascript - jQuery ajax调用按钮单击验证不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28136275/

10-12 06:54