Javascript Jquery onclick提交和Jquery函数

Javascript Jquery onclick提交和Jquery函数,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我有一个按钮,当点击时,它会执行jquery功能并提交表单 这是我的HTML代码: <?php echo Form::open(array("class"=>"form-horizontal","method"=>"POST" ,"id"=>"frmMainOrders","enctype" => "multipart/form-data" )); ?> <div class="search"> <tr class="

我有一个按钮,当点击时,它会执行jquery功能并提交表单

这是我的HTML代码:

<?php echo Form::open(array("class"=>"form-horizontal","method"=>"POST" ,"id"=>"frmMainOrders","enctype" => "multipart/form-data" )); ?>
    <div class="search">
        <tr class="tblAdvancedSearch">
            <th scope="row">備考</th>
            <td>
                <input class="input_text_search" type="text" name="multi_column" id="multi_column_search" value=""/>
            </td>
        </tr>
        <input type="submit" id="btn_submit" value="検 索" name="adv_search">
    </div>
<?php echo Form::close();?>
我试过:

<input type="submit" id="btn_submit" value="検 索" name="adv_search" onclick="$('form').submit()">

这种方式允许我提交表单,但我的控制器无法获取
attribute name=“adv_search”
,因此我的功能无法工作

我尝试了
preventDefault()
$(“#btn_submit”)。单击(false)
。 但它们都阻止了所有提交和jquery函数


当我单击提交按钮时,是否有一种方法可以提交表单,但不能仅使用jquery功能?

如果您有表单,并且希望通过Ajax发送数据,您应该执行以下操作:

$('#formID').submit(function(e) {
            e.preventDefault();
             var submitButtonValue=$(this).children('input[type=submit]').val(); //This is 検 索

             var data=$(this).serialize()+ "&adv_search="+submitButtonValue;
          //probably your ajax call here...     
})
Serialize是一个函数,您可以通过它获取表单中所有输入的值,还可以通过Ajax轻松发送


您应该使用submit,因为它还将检查验证和更多内容您可以使用e.target.name查找元素的名称。因此,基于此,您可以有条件地触发方法
showAdvancedForm()


e.target
-获取触发特定事件的元素

$('.search')。在('click',函数(e)上{
if(e.target.name==“多列”){
log('调用方法:showAdvancedForm');
showAdvancedForm();//当在div class=search中单击时,它将执行一个jquery函数名showAdvancedForm()。
}
});
函数showAdvancedForm(){
if($(“.tblAdvancedSearch”).css('display')=='none'){
$(.tblAdvancedSearch”).css('display','table row');
}否则{
$(.tblAdvancedSearch”).css('display','none');
}
}

備考

我不确定您现在想要什么。按钮
点击
应该发生什么,表单
提交
应该发生什么?大家好,欢迎来到Stackoverflow!请花一分钟时间阅读本教程,了解更好的问题,特别是关于好标题和坏标题的示例:stackoverflow.com/help/how-to-ask-请提供更多代码-您的表单看起来如何,以及什么是
showAdvancedForm()
函数?我在class=“search”中有一个表单和一个按钮,脚本允许我在单击时显示/隐藏此表单。这个提交按钮也在这个表单中,所以当我单击提交按钮时,它会编写jquery脚本,然后再提交表单。我想要的是,当我单击“提交”按钮时,它不应该运行脚本jquery,但仍然提交表单。@eagleyes您是否尝试过event.stopPropagation()?您好,Jurik,我已经阅读了有关Stackoverflow和中的问题的所有资料。我仍然没有发现任何东西可以解决我的问题。我还添加了更多的代码。我使用的是框架燃料,我尝试使用AJAX,它可以将数据发送到我的控制器。我的控制器如下所示:
如果($\u POST['adv\u search']){do My function}
我的代码检查提交工作的名称。@eagleyes我编辑了你需要的答案,你只需要将提交的内容值添加到序列化数据中,这将起作用。现在我这样做:
$(“输入[type=submit]”。on('click',function(e){如果(!e.isDefaultPrevented()){showAdvancedForm();//单击btn_submit时,表单将立即打开并关闭})
我知道,我所做的并不完全正确。但我的客户只是给了我更奇怪的要求。我以后会按照你给我的方式做。谢谢。我解决了它:D谢谢。抱歉,因为迟了回答你的评论。抱歉,我忘了。原谅我:DIt有效。谢谢。我需要做一些更改以适应你的答案。e.target.name帮了我很多忙:D:D顺便说一句,当我点击up vote your Response时,我得到了以下信息:
感谢您的反馈!记录声誉低于15的人所投的票,但不要更改公开显示的帖子分数。
我如何才能投票给您的答案?@eagleyes是的,您需要15+分才能投票,您可以通过点击th接受我的答案当你得到更多的分数时,马克投你的票:-P
$('#formID').submit(function(e) {
            e.preventDefault();
             var submitButtonValue=$(this).children('input[type=submit]').val(); //This is 検 索

             var data=$(this).serialize()+ "&adv_search="+submitButtonValue;
          //probably your ajax call here...     
})