1

我有一个表单来编辑通过设置填充的数据库表,<input value="<?php echo $myvalue?>">但是我正在尝试验证表单,如果我删除该字段,则在 form_submit 上,该值返回为旧值,$myvalue而不是""我希望看到的值。我注意到在 HTML 中value仍然设置了该属性,这是有道理的,但我不确定在这种情况下任何表单如何检查输入是否为空!?

到目前为止,这是我的验证功能。我还不能完全测试它。

$(".my-form").submit( function(e) {
        $('error-desc').hide();
        $('input').removeClass('error');
        $('input[name^=edit]').each( function(){
            if ($(this).val()===""){
            $(this).addClass('error');
            $('error-desc').show();
            }
        });

        $('.add > .item').each( function(){
            var empty = true;
            $(this).find('input').each(function(){
                if ($(this).val() !== ""){
                    empty = false;
                }
            });
            if (!empty){
                $(this).find('input[name^=edit][value=""]').each(function(){
                    $(this).addClass('error');
                    $('error-desc').show();
                });
            }
        });

        if ($('input').hasClass('error')) {
            $('html, body').animate({
                scrollTop: $('.error-details').offset().top
            }, 2000);
            return false;
        } else {
            return false;
        }
    });
4

1 回答 1

2

如果输入被用户清空或通过 javascript 清空,无论源中的内容是什么,jQuery 的.val()方法都应该返回正确的。""

如果发生了其他事情,您需要提供一个带有证据的 jsfiddle,因为这不是该.val()方法的工作原理。如果输入为空,.val()将返回一个空字符串。

演示:http: //jsfiddle.net/eW63x/

于 2012-06-07T18:43:26.013 回答