-1

我正在尝试禁用提交按钮,直到返回用户名和电子邮件检查这可行,但我不希望它继续并在出现错误时显示提交按钮。即用户名/电子邮件已经存在!

我一直在尝试从表单中的 id="livesearchEmail" 检索我的错误值。如果它清楚即没有错误,那么我希望按钮变为活动状态!我所拥有的看起来很直截了当,但它不起作用!我错过了什么?

我整天都在尝试从#livesearchEmail 返回一个值,但无济于事。

任何帮助或正确方向的点都将被感激地接受!

<div id="livesearchEmail" class="livesearchEmail"></div>

<script type="text/javascript">  
    $(document).ready(function() {    
        $('input[id="registerButton"]').attr('disabled','disabled');
        $('input[type="text"]').keyup(function() {
        if ($('#user_name').val() != "" && $('#email').val() != "") {
            if ($("#livesearchEmail") == ''){
                $('input[id="registerButton"]').removeAttr('disabled');
            }
        }
        });        
    });​​
</script>  
4

3 回答 3

0

假设您尝试获取的数据位于 DOM 元素(如 <div>)而不是表单元素中,您可以这样做:
if ($("#livesearchEmail")[0].innerHTML === '')

或者如果想保留它 jQuery 我认为你可以使用 text() 函数:
if ($("#livesearchEmail").text() === '')

另外,请注意我使用三等号来防止错误的评估。

于 2012-05-03T15:10:51.747 回答
0

jQuery ID 选择器(“#id”)

因为 ID 是唯一的,所以您不需要使用标签和所有东西构造一个特殊的选择器。例如,您可以简单地将 this: 转换$('input[id="registerButton"]')为 this: $("#registerButton")

我不太确定您为什么要检查是否没有返回错误,因为如果您检查该按钮将永远不会激活。但是,根据您的要求,此 jQuery 代码将为您工作:

$(document).ready(function() {    
    $("#registerButton").attr('disabled','disabled');
    $('input[type="text"]').keyup(function() {
    if ($('#user_name').val() && $('#email').val() && (!$("#livesearchEmail").length || !$("#livesearchEmail").text())) {
        $("#registerButton").removeAttr('disabled');
    }
    });        
});
于 2012-05-03T15:14:19.143 回答
0

尝试使用 $("#livesearchEmail").text();


编辑 - 添加代码

$(document).ready(function() {  
     $('input[id="registerButton"]').attr('disabled','disabled');
     $('input[type="text"]').keyup(function() {
        if($('#user_name').val() != "" && $('#email').val() != ""){
            if ($("#livesearchEmail").text() == ""){
                $('input[id="registerButton"]').removeAttr('disabled');
            }
        }
     });  
 });  
于 2012-05-03T14:57:22.100 回答