Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 - Fatal编程技术网

Javascript 错误消息为';不要在好地方展示

Javascript 错误消息为';不要在好地方展示,javascript,jquery,Javascript,Jquery,我现在花了几个小时调试jQuery错误函数(也成功了)。 我不明白我怎么能只在我点击的按钮下方显示错误消息。 为了帮助你理解我的问题,我做了一个 以下是HTLM部分: <div class="leblock"> <strong>Title</strong> some text<br /> <form id="panier_1" method="post" action=""> <i

我现在花了几个小时调试jQuery错误函数(也成功了)。 我不明白我怎么能只在我点击的按钮下方显示错误消息。 为了帮助你理解我的问题,我做了一个

以下是HTLM部分:

<div class="leblock">
        <strong>Title</strong> some text<br />
        <form  id="panier_1" method="post" action="">
        <input type="submit"  value="0130280001" />
        <div id="txtHint_1"><b>data will spawn below</b></div>
        <div> <span id="error_1" style="display:none; color:#F00">DIV 1 NOT OK</span>
         <span id="success_1" style="display:none; color:#0C0">OK</span></div>
        </form>
</div>        
     <br /><br /><br />
<div class="leblock">
        <strong>Title</strong> some text<br />
        <form  id="panier_2"    method="post" action="">
        <input type="submit"  value="0130280002" />
        <div id="txtHint_2"><b>data will spawn below</b></div>
        <div> <span id="error_2" style="display:none; color:#F00">DIV 2 NOT OK</span>
        <span id="success_2" style="display:none; color:#0C0">OK</span></div>
        </form>
</div>        

任何建议都将受到极大的欢迎

我会在“error”的错误范围中添加一个类,并可能将样式移动到类中,如下所示:

<style>
  .error {display:none; color:#F00}
</style>

<span id="error_1" class="error">DIV 1 NOT OK</span>
error:function(data){
        $(this).siblings(".error").show().fadeOut(2000); //===Show Error Message====
        }

可以通过隐藏id为“txtHint_979;”的div来解决这个问题,或者您甚至可以更改id为“txtHint_979;”的这个div的内部HTML


我希望这会有所帮助。

您遇到的问题之一是,您没有对表单提交处理程序中按下的按钮的引用。一种解决方案是将单击处理程序附加到提交按钮,以跟踪上次按下的提交按钮,并将其用作参考点,以查找适当的错误消息位置

我在这里更新了你的小提琴:

error:function(data){
        $(this).siblings(".error").show().fadeOut(2000); //===Show Error Message====
        }
$(document).ready(function(){
    var submitButtonPressed = null;
    $('input[type=submit]').click(function() {
        submitButtonPressed = this; 
    });
    $('[id^="panier_"]').on('submit',function(e) {
        console.log(e);
        var $this = $(this);
        $.ajax({
            url:'panier.php',
            data:$this.serialize(),
            type:'POST',
            success:function(data){
                if (submitButtonPressed) {
                    $(submitButtonPressed).closest('form').find('[id^="success_"]').show().fadeOut(2000);               
                }
            },
            error:function(data){
                if (submitButtonPressed) {
                    $(submitButtonPressed).closest('form').find("span:first-child").show().fadeOut(2000); //===Show Error Message====
                }
            }
        });
        e.preventDefault();         
    });       
});