使用 jQuery 提交表单不起作用

发布于 2024-12-04 07:35:17 字数 1087 浏览 0 评论 0原文

我无法正常提交表单。我正在使用 PreventDefault 为了动态更改表单的操作属性,但是当我单击 该按钮根本不执行任何操作,我已经不知道为什么会这样了 是。任何人都可以看一下并指出我出错的地方吗?

代码如下:

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 代码的第一部分)期间定义了它。这可能是单击按钮时没有任何反应的原因吗?

预先非常感谢

I'm having trouble getting my form submission working. I'm using a preventDefault
in order to dynamically change the action attribute of the form, but when I click
the button it does not do anything at all, and I'm running out of ideas why this might
be. can anyone please have a look and point me to where I went wrong ?

Here's the code:

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>

EDIT: After having corrected a typo in the first version, and when running the code through Firebug, I get an error message saying that typ_url is not defined. I have defined it during an action (first part of the JS code) which is executed before the submit. Can that be the reason that nothing happens when clicking the button ?

Thanks very much in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇妻 2024-12-11 07:35:17

我假设您已将 $ 别名为 $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();
});

I'm assuming you've aliased $ to $j. Remove the . after $j in these two lines

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

Also just providing the id with $('#id') is enough.

Complete example:

$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();
});
海风掠过北极光 2024-12-11 07:35:17

更改:

$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();

有多余的点。

Change:

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

Into:

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

There are extra dots.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文