如何在不知道表单ID的情况下访问表单元素?

时间:2015-05-20 07:15:01

标签: javascript jquery

我的jsp中有几个具有相同UI的表单,但id不同。

我想编辑一个特定的表单,并通过Jquery脚本提交这些表单元素。

我的js文件如下:

  $("form").submit(function(event){
    var id= $(this).attr("id");

    var name="#"+id;
    alert(name);
    var dis = $(name).attr("disabled");

    if (dis==true){
        alert("disabled");
        event.preventView()
    } else{
        alert("not disabled");
       //submit the form
    }

我将 dis 视为未定义。 所以我每次条件都是假的。 我的要求是

  • 如果所有输入字段都是禁用状态,则不要提交表单

  • 如果所有输入字段均为启用状态,则提交表单

我怎样才能做到这一点。我哪里错了?

你能建议吗。

2 个答案:

答案 0 :(得分:1)

您可以检查:disabled选择器以及:not()

$("form").submit(function (event) {
    if ($(this).find('input:not(:disabled)').length==0) {
        event.preventDefault()
    }
})

答案 1 :(得分:1)

您可以根据自己的要求尝试以下功能。

function chkvalidform(formID){
    var flag = '';
        formID = '#'+formID;
        $( ':input[required]:visible,select[required]:visible option[value]:selected', formID ).each( function () {
            if ( this.value.trim() !== '' ) {
                if($(formID+' '+'select[required].length > 0') && $(formID+' '+'select[required] option[value]:selected').val() == ''){ 
                    flag = 'false';
                }
                else {
                    flag = 'true';
                }
            }
            else { 
                flag = 'false';
            }
        });
        if(flag == 'true'){
                if (!$(formID).valid()) {
                    $(formID+' '+'input[type="submit"]').attr('disabled',true);
                    $(formID+' '+'input[type="submit"]').addClass('greySubmit');
                    $(formID+' '+'input[type="submit"]').removeClass('themeInBgColor');
                } else {
                    $(formID+' '+'input[type="submit"]').attr('disabled',false);
                    $(formID+' '+'input[type="submit"]').removeClass('greySubmit');
                    $(formID+' '+'input[type="submit"]').addClass('themeInBgColor');
                }
        }
        else  if(flag == 'false'){
                $(formID+' '+'input[type="submit"]').attr('disabled',true);
                $(formID+' '+'input[type="submit"]').addClass('greySubmit');
                $(formID+' '+'input[type="submit"]').removeClass('themeInBgColor');
        }
}