为什么这种情况在JS中不正确

时间:2016-02-21 17:17:10

标签: javascript json

我的代码返回以下JSON:

{"code_retour":-1,"texte_retour":"Le lien de parent\u00e9 est inconnu"}

在我的JS代码中,我有这个条件返回true

    if (reponse.code_retour != 0) {

这个返回false

if (reponse.code_retour == -1) {

我缺少一些东西。 为什么两者都不归实?

以下是我的代码以获取更多详细信息:

$.ajax({
       type: 'POST',
       url: $('#url_for_ajax').val()+'/post_formulaire_responsables_personne',
       data: $('#form_responsable').serialize(),
       success: function(reponse) {

        // reset des erreurs
        $('#form_responsable :input').parent().parent().removeClass('has-error has-feedback');
        $('#form_responsable :input').nextAll('span,small').remove();
        $("#reponse-serveur").hide();
console.log(reponse);           
        // il y a des erreurs dans le formulaire
        if (reponse.code_retour == -1) {
            alert('I am here');             
            var arr = reponse.texte_retour;
            if (!jQuery.isEmptyObject(arr)){
                    var errorString = '<ul>';
                    $.each(arr, function(index, value)
                    {
                        if (value.length != 0) {errorString += '<li>' + value + '</li>';}

                        $(':input[name="' + index + '"]').parent().parent().addClass('has-error has-feedback');
                        $(':input[name="' + index + '"]').after('<span class="glyphicon glyphicon-warning-sign form-control-feedback" aria-hidden="true"></span><small class="text-danger">'+value+'</small>');
                    });
                    errorString += '</ul>';
            }

           $("#reponse-serveur").html(errorString);
           $("#reponse-serveur").show();


           } else {

1 个答案:

答案 0 :(得分:2)

两种情况都返回trueHere is an example。也许价值不是你所期望的那样?

如果您使用的是Chrome,则可以使用内置的调试工具查看正在进行的操作。

在浏览器101中调试Javascript

在这种情况下,我会尝试弄清楚reponse真实值是什么,当您尝试评估它时。有几种方法可以做到这一点:

reponse

的值

您应该检查以确保您的回复符合您的预期。试试这些:

<强> console.log()

Documentation

这允许您将消息放入浏览器的控制台。在这种情况下,console.log(reponse);应该没问题。从这里你会看到这样的东西:

enter image description here

在这里,您可以看到reponse.code_retour实际上是-1(如示例中所示)还是其他内容。

debugger关键字

Documentation

您可以简单地在代码中的某处放置debugger;一词,如果您有调试工具(如前面链接中所述),请打开它,暂停代码。在这里,您可以看到reponse.code_retour的真正价值。

enter image description here

断点很酷。

他们让你基本上&#34;暂停时间&#34;通过在特定时刻停止代码,您可以随意移动。

您可以使用以下按钮跳过跳转到,然后跳出功能范围:enter image description here。所有这些都可能在之前的文件中得到了解释。

这些本质上是断点:

断点

您还可以添加&#34;断点&#34;使用浏览器内置的调试工具。只需转到“来源”选项卡,然后单击要停止的行号:

enter image description here

请求数据(表单数据)

您应该首先检查您发送到服务器的内容!代码可能没有按照您的预期进行操作。

为此,我建议将您传递的所有内容({1}})拉出来,并将其存储在单独的变量中(例如$.ajax)。然后,您可以使用之前的方法之一来确保发送到服务器的数据(ajaxConfig)是您希望发送的数据。

示例代码:

ajaxConfig.data