表单提交与jQuery无法正常工作

时间:2011-09-14 13:34:48

标签: jquery button form-submit

我无法让表单提交正常工作。我正在使用preventDefault 为了动态更改表单的action属性,但是当我单击时 按钮它根本没有做任何事情,而且我已经没有想法为什么会这样 是。任何人都可以看看并指出我哪里出错了?

以下是代码:

JS:

           $j('select[id=subtype]').live('change',function(){                 
           var stype = $j(this).val();  
    var styp_pos = $j.inArray(stype, styp_id_arr);
    var styp_url = styp_url_arr[styp_pos];
    $j('input[id=styp_url]').val(styp_url);
       });


            $j('button[id=frm_submit]').click(function(event){
    event.preventDefault();
    var full_url  = typ_url + '-' + styp_url + '.html';
    alert(full_url);
    $j('form[id=type_sel_form]').attr("action", full_url);
    $j('form[id=type_sel_form]').submit();

});

HTML:

<form id="type_sel_form" name="type_sel" class="stsel_form" action="subtype.php" method="post">
...
<button id="frm_submit" type="submit" class="st_button">View</button>
</form>

编辑:在第一个版本中更正了拼写错误,并且在通过Firebug运行代码后,我收到一条错误消息,指出typ_url未定义。我在提交之前执行的操作(JS代码的第一部分)中定义了它。这可能是单击按钮时没有任何反应的原因吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

我假设你将$别名$j。删除这两行.之后的$j

$j('#type_sel_form').attr("action", full_url);
$j('#type_sel_form').submit();

同样只提供id $('#id')即可。

完整示例:

$j('#frm_submit').click(function(event){
    event.preventDefault();
    var full_url  = typ_url + '-' + styp_url + '.html';
    alert(full_url);
    $j('#type_sel_form').attr("action", full_url);
    $j('#type_sel_form').submit();
});

答案 1 :(得分:0)

变化:

$j.('form[id=type_sel_form]').attr("action", full_url);
$j.('form[id=type_sel_form]').submit();

分为:

$j('form[id=type_sel_form]').attr("action", full_url);
$j('form[id=type_sel_form]').submit();

还有额外的点。