提交带有附加选项的表单,适用于所有浏览器,但不适用于IE

时间:2011-04-05 09:19:46

标签: jquery asp-classic

我最近在asp网站上遇到过表单问题。

基本上,表单需要用户填写,然后他们可以选择上传文件或立即提交。

单击“附加”按钮会话保存,然后将它们重定向到上传文件页面,一旦上传用户,然后单击以返回到表单,其所有详细信息仍然包含在内;然后他们可以提交。

此前,该表单仅适用于Chrome和Safari。通过Stackoverflow,我发现以下代码适用于IE以外的所有broswers。

$('#myForm').get(0).setAttribute('action', 'session_save.asp');

我希望它是stAttribute标签,但我不确定我应该使用什么,搜索并没有让我产生任何想法。

我提交的代码如下:

<input type="image" id="attach" value="Attach" name="action" src="images/btn_attach.gif" style="margin: 0 0 6px 0;"><br>                        

<input type="submit" id="send_data" value="Send" title="Submit CSR" name="action">

</form>
<!--JQUERY TO CHANGE FORM ACTION-->
<script>
    $(document).ready(function(){
        $("#attach").click(function(){
            $('#myForm').get(0).setAttribute('action', 'session_save.asp');
            <!--$('#myForm').attr({action: "session_save.asp"});-->
            $('#myForm').submit(); 
        });
    });
</script>

<!--END JQUERY-->

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

没有多大意义
 $('#myForm').get(0).setAttribute('action', 'session_save.asp');

工作而不是

 $('#myForm').attr({action: "session_save.asp"});

你应该使用后者,除非jQuery中有错误。你使用的是哪个版本?你能给出原始问题的链接吗?我想看一下。

但是,您不应在输入中使用name="action",因为这可以“隐藏”表单的action属性,这很可能是您的真正问题。


编辑:

我错过了您将活动附加到input type="image"。他们自己提交表格,除非你阻止,否则你不提。您需要让事件处理程序返回false(或使用jQuery的event.preventDefault()):

    $("#attach").click(function(){
        $('#myForm').attr({action: "session_save.asp"});
        $('#myForm').submit();
        return false;
    });

顺便说一下,您在JavaScript中使用HTML注释。您必须使用/* ... */代替<!-- ... -->