Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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
Php 提交按钮在IE/Safari中不起作用,在Chrome中起作用,但无法传递表单信息_Php_Javascript_Jquery_Parameter Passing - Fatal编程技术网

Php 提交按钮在IE/Safari中不起作用,在Chrome中起作用,但无法传递表单信息

Php 提交按钮在IE/Safari中不起作用,在Chrome中起作用,但无法传递表单信息,php,javascript,jquery,parameter-passing,Php,Javascript,Jquery,Parameter Passing,我有一个表单设置,但由于某些原因,JS提交表单在Chrome中工作,而不是IE9或Safari。有趣的是,在Chrome中,提交按钮不起作用,所有信息都无法传递 这是我的提交按钮- <a href="javascript: validate(); return false;"><img type="submit" src="lib/send_feedback.jpg" border="0" class="feedback-submit-img" /></a>

我有一个表单设置,但由于某些原因,JS提交表单在Chrome中工作,而不是IE9或Safari。有趣的是,在Chrome中,提交按钮不起作用,所有信息都无法传递

这是我的提交按钮-

<a href="javascript: validate(); return false;"><img type="submit" src="lib/send_feedback.jpg" border="0" class="feedback-submit-img" /></a>
如果你想更好地查看我正在编辑的页面

编辑

根据Marco的请求,我删除了submit按钮周围的链接,并将onClick事件放置到实际的按钮上。这绝对解决了IE和Safari的问题。现在我剩下的问题/担忧是为什么POST数据不能正确地传递到下一页

-index.php

-feedback-accept.php

还有,既然如此,StackOverflow的首选站点是什么


作为对Brian评论的回应,如果我不能使用failed而不破坏POST数据,那么什么是好的替代方案/解决方法?

简单地看一下,我会说您在这里遇到了函数冲突。当您设计提交类型时,您告诉浏览器将提交您的表单(在其操作中),另一方面,它位于调用JS函数的链接中。如果您在JS中制造提交,尝试考虑不使用提交类型,并查看它是否工作得更恰当。
您还可以尝试在表单的标记中替换一个简单的“onSubmit”链接,并从那里调用JS函数。这样,当浏览器识别出用户点击提交按钮时,他将根据您的意愿调用JS函数,如果该函数返回true,则浏览器将允许提交。

快速查看,我会说您在这里遇到了函数冲突。当您设计提交类型时,您告诉浏览器将提交您的表单(在其操作中),另一方面,它位于调用JS函数的链接中。如果您在JS中制造提交,尝试考虑不使用提交类型,并查看它是否工作得更恰当。
您还可以尝试在表单的标记中替换一个简单的“onSubmit”链接,并从那里调用JS函数。这样,当浏览器识别出用户点击提交按钮时,他将根据您的意愿调用JS函数,如果该函数返回true,则浏览器将允许提交。

尝试以下代码:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>
jQuery:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>
HTML:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>

<input type="submit" value="Submit" class="validate" />
<button class="validate" >Submit</button>

<input type="submit" value="Submit" class="validate" />
<button class="validate" >Submit</button>
提交

尝试以下代码:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>
jQuery:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>
HTML:

$(document).ready(function()
{

    $('.validate').bind('submit click',function()
    {
        //Validate!

        //is email
        if( /..../.test( $(this).find('input[name=email]').val() ) )
        {
            alert('Error!!!');
            return false; //STOP PROPAGATION
        }

        //Its okay!
        //send form!
        $(this).parents('form').submit();

        //click event stop propagation
        return false;
    });

});
<a href="" class="validate">Submit</a>

<input type="submit" value="Submit" class="validate" />
<button class="validate" >Submit</button>

<input type="submit" value="Submit" class="validate" />
<button class="validate" >Submit</button>
提交

你能发布生成的源代码吗?一些
返回false不同位置的表达式将阻止您提交表单。事件委派我的朋友。。。此外,发布源的首选来源是您选择的任何安全服务。只要你没有发布数百行代码,我认为你很好。你能发布生成的源代码吗?一些
返回false不同位置的表达式将阻止您提交表单。事件委派我的朋友。。。此外,发布源的首选来源是您选择的任何安全服务。只要你没有发布数百行代码,我认为你很好。这正是问题所在,我不知道我怎么看不到这一点。很明显,我在JS还是个新手,我非常感谢你花时间解释问题所在。我提供的任何JS代码都会阻止POST数据的传递吗?这正是我不知道为什么看不到的问题。很明显,我在JS还是个新手,我非常感谢你花时间解释问题所在。我提供的任何JS代码都会阻止POST数据的传递吗?如果出于某种原因JS阻止我的POST数据的传递,那么这些都是很好的选择。感谢您对替代解决方案的全面响应。如果出于某种原因JS阻止我的帖子数据被传递,那么这些都是很好的替代方案。感谢您对备选解决方案的全面响应。