Javascript 使用jQuery禁用特定范围

Javascript 使用jQuery禁用特定范围,javascript,jquery,html,Javascript,Jquery,Html,我正在创建一个日历事件应用程序,您可以在其中保存人们的生日日期,并随时编辑人们的姓名或日期 为了显示存储的事件,我在JSP中使用了一个forEach循环。我在每个div中都有一个名为ld的span选项ok edit。单击该span并保存数据后,您可以编辑以前的数据 但在单击save按钮之前,我正在使用jQuery悬停函数检查特定div中的任何字段是否为空 如果任何字段为空,那么我将禁用span元素,使其无法将请求转发到servlet,但问题是我无法禁用它。 ?????? 问题 ??????? 我

我正在创建一个日历事件应用程序,您可以在其中保存人们的生日日期,并随时编辑人们的姓名或日期

为了显示存储的事件,我在JSP中使用了一个
forEach
循环。我在每个div中都有一个名为
ld的span选项ok edit
。单击该span并保存数据后,您可以编辑以前的数据

但在单击save按钮之前,我正在使用jQuery悬停函数检查特定div中的任何字段是否为空

如果任何字段为空,那么我将禁用span元素,使其无法将请求转发到servlet,但问题是我无法禁用它。 ?????? 问题 ??????? 我的问题是如何通过jQuery禁用span,或者如何使用jQuery防止span的onclick事件

这是我的密码:

<c:forEach items="${relativeUser}" var="user"> 
    <div class="elementsdiv">
        <form action="<c:url value=" ******">" method="post"> 
           <div class="cld-option-okay"  >
                <span class="glyphicon glyphicon-ok cld-option-okay-edit" name="cld-option-okay-edit" ></span>                                   
            </div>  
                <div class="cld-option-name" >
                <input class="cld-name-input" value="${user.name}" placeholder="Name of the person" type="text" name="name">
            </div>
        </form>
    </div>
</c:forEach>
对于这句话,我甚至试过:

1)$($(data).find('span[name="cld-option-okay-edit"]')).attr("disabled","true");//with single quote also
2)$($(data).find('span[name="cld-option-okay-edit"]')).attr("disabled","disabled");//with single quote also
3).prop("disabled", true );
4).attr('disabled', '');
5).attr("disabled", "disabled");
6).off( "click", "**" );
7).unbind( "click", handler );

but when I apply:    
    `$($(data).find('span[name="cld-option-okay-edit"]')).hide()`;//it is applying   
**********************
       `$($(data).find('span[name="cld-option-okay-edit"]'))`till here code is working fine my problem is in applying disable.
previously i applied disable like below    

    $('.cld-option-okay-edit').addClass('disabled');

but it disables  okay span in all divs
*************************

我认为这是基于您所编写的代码的外观,但我不确定这是否是您真正想要的。如果要禁用它,需要使用prop()


对于启用或禁用范围,您可以这样做:

var isEmpty = false;

$('#myDiv > input').keyup(function(){ 
    isEmpty = false;

    $('#myDiv > input').each(function(i,obj){
        if(this.value == ""){
            isEmpty = true;

            return false;
        } 
    });

    // Styles for the span.
    if( ! isEmpty){
        $('#myDiv > span').removeClass('disabled');
    } else {
        $('#myDiv > span').addClass('disabled');
    }
});

$('#myDiv > span').click(function(){
    if(isEmpty){
        alert("disabled");
    } else {
        alert("enabled");
    }
});

你不应该做
$($(XXXX))
!find返回一个jQuery对象,无需再次包装它。
$(".elementsdiv").each(function() {
    var elem = $(this);
    elem.find('.cld-option-okay').hover(function(e) {
        if (elem.find('input[name="name"]').val() === "") {
            elem.find('span[name="cld-option-okay-edit"]').addClass('disabled'); /*.prop("disabled",true); */
        }
    });
});
var isEmpty = false;

$('#myDiv > input').keyup(function(){ 
    isEmpty = false;

    $('#myDiv > input').each(function(i,obj){
        if(this.value == ""){
            isEmpty = true;

            return false;
        } 
    });

    // Styles for the span.
    if( ! isEmpty){
        $('#myDiv > span').removeClass('disabled');
    } else {
        $('#myDiv > span').addClass('disabled');
    }
});

$('#myDiv > span').click(function(){
    if(isEmpty){
        alert("disabled");
    } else {
        alert("enabled");
    }
});