Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示特定跨距的错误时出现问题_Javascript_Jquery_Html_Css_Json - Fatal编程技术网

Javascript 显示特定跨距的错误时出现问题

Javascript 显示特定跨距的错误时出现问题,javascript,jquery,html,css,json,Javascript,Jquery,Html,Css,Json,数据是我从另一个页面获得的json,它看起来很像 数据: {"BusNo":["The bus no field is required."],"CompID":["The comp id field is required."],"TotalSeats":["The total seats field is required."]} 这是我的剧本: $(document).ready(function() { $("#driver").click(function(event) {

数据是我从另一个页面获得的json,它看起来很像

数据:

{"BusNo":["The bus no field is required."],"CompID":["The comp id field is required."],"TotalSeats":["The total seats field is required."]} 
这是我的剧本:

$(document).ready(function() {
    $("#driver").click(function(event) {
        var BusNo = $("#BusNo").val();
        var CompID = $("#CompID").val();
        var TotalSeats = $("#TotalSeats").val();
        var _token = $("#_token").val();
        $.post("managebus_register", {
                _token: _token,
                BusNo: BusNo,
                CompID: CompID,
                TotalSeats: TotalSeats
            },
            function(data) {
                if (data != '') {
                    var obj = JSON.parse(data);
                    $.each(obj, function(entry) {
                        var targetSelector = '';
                        if (entry == "BusNo") {
                            targetSelector = "#BusNo";
                            console.log('error in bus field');
                        }
                        if (entry == "CompID") {
                            targetSelector = "#CompID";
                            console.log('error in comp id');
                        }
                        if (entry == "TotalSeats") {
                            targetSelector = "#TotalSeats";
                            console.log('error in total seats');
                        }
                        if (targetSelector)
                            $(targetSelector).next("span.error").html(obj[entry]);
                        else {
                            $(targetSelector).next("span.error").text(' ');
                        }
                    });
                } else {
                    console.log('pass');
                }
            });
    });
});
如果
if(data!='')
并检查
targetSelector=“#BusNo”

我的问题是,一旦脚本运行,它会将错误抛出到特定范围,即BusNo、CompID等

一旦它被填满,它就会继续显示错误消息

也就是说,给定的脚本

if (targetSelector)
    $(targetSelector).next("span.error").html(obj[entry]);
else {
    $(targetSelector).next("span.error").text(' ');
}
这里是else部分
$(targetSelector).next(“span.error”).text(“”)不工作

我所犯的错误是什么?我该如何纠正

更新: 我知道了

 $("span.error").empty();
我会这样做的

但是我需要突出显示带有错误的输入文本框,错误应该只显示在特定文本的悬停处,而不显示在

<input type="text" id="BusNo" name="BusNo"/><span class="error"></span>

<input type="text" id="CompID" name="CompID"/><span class="error"></span>

代码更改:

if (targetSelector)
   $(targetSelector).next("span.error").html(obj[entry][0]);
else {
   $(targetSelector).next("span.error").text(' ');
}
如果要在悬停时显示错误:

$("input").hover(function(){
    var id = $(this).attr("id");
    $("input").next("span.error").hide();
    $("#"+id).next("span.error").show();
})

我还强烈建议始终在语句中使用
{}
,特别是在问题末尾突出显示的代码这样的情况下,如果
if
部分没有它们,但是
else
部分有,那么它应该做什么?您正在检查targetSelector是否为truthy,而不是truthy,这意味着它是一个空字符串(或null、未定义等),因此您的else语句的计算结果为:
$(“”).next(“span.error”).text(“”)这不会做任何事情。@JOnathanCrowe:Now$(“span.error”).empty();是吗work@T.J.Crowder感谢您的编辑,我将按照您的话,并使用jsbeautifier.org。谢谢谢谢,我已经修正了,现在我只需要在悬停中应用错误悬停函数应该在文档上的上。准备好了吗?是的,它工作得很好,悬停工作,我需要使错误文本框带有红色框阴影来突出显示错误,如何在您的代码中执行此操作?请在文本框中添加类并在该类webkit框上应用css阴影:0px 0px 3px 0px 35; ff0000;盒影:0px 0px 3px 0px#ff0000;如果我添加,它将为所有输入框高亮显示,对,,,,,实际上,我只需要高亮显示有错误的特定文本框,,,,,,,我如何才能做到这一点