Jquery form.submit没有在IE9中发布任何内容

时间:2013-09-07 16:15:32

标签: php javascript jquery internet-explorer

我已经连续几天要求解决我的问题,但我还没有找到解决问题的解决方案。我希望这里的某个人能够帮助我或指出我正确的方向。 我的问题如下: 我正在使用jquery(1.9.0)和jquery-ui(1.10.1)。我有一个带有表单的页面,应该发布到php脚本以将数据添加或更新到我的数据库中。所有在FF中工作都很好,甚至在IE 8和IE 10中也可以。但在IE9中数据没有提交:var_dump'ing $ _POST-array给了我一个空数组,没有发布任何内容。

以下是代码(我将提交要点:

    <form name="documents" id="documents" method="POST" action="inc/add_new_doc.php">
        <table class="invoer" align="left">
        <tr>
            <th align="left" colspan="8"><h2>Please fill out all fields</h2></th>
        </tr>
        <tr>
            <td align="right">Originator:</td>
            <td colspan="2"><select name="company_id" id ="company_id"><?php echo getCompanyList(0); ?></select></td>
            <td>Originator document number:</td>
            <td colspan="2"><input name="docnrsupplier" id="docnrsupplier" type="text" size="30" tabindex="2" /></td>
            <td>Document category:</td>
            <td><select name="doccat_id" id ="doccat_id"><?php echo getDocCatList(0); ?></select></td>
        </tr>
        <tr>
            <td ></td>
            <td colspan="2"><b>LAB GmbH</b></td>
            <td>LAB document number:</td>
            <td colspan="2"><input name="docnrlab" id="docnrlab" type="text" size="30" tabindex="2" /></td>
            <td>Document size:</td>
            <td><select name="docsize_id" id ="docsize_id"><?php echo getDocSizeList(0); ?></select></td>
        </tr>
        <tr>
            <td align="right">Client:</td>
            <td colspan="2"><b>CEH</b></td>
            <td>Client document number:</td>
            <td colspan="2"><input name="docnrclient" id="docnrclient" type="text" size="30" tabindex="2" /></td>
            <td>Current revision:</td>
            <td><select name="revi" id ="revi"><?php echo buildAZSelector(); ?></select></td>
        </tr>
        <tr>
            <td align="right">Title (line 1):</td>
            <td colspan="5"><input name="title1" id="title1" type="text" size="100" tabindex="2" /></td>
            <td>Current doc. phase:</td>
            <td><select name="docphase_id" id ="docphase_id"><?php echo getDocPhaseList(0); ?></select></td>
        </tr>
        <tr>
            <td align="right">Title (line 2):</td>
            <td colspan="5"><input name="title2" id="title2" type="text" size="100" tabindex="2" /></td>
        </tr>
        <tr>
            <td align="right">Title (line 3):</td>
            <td colspan="5"><input name="title3" id="title3" type="text" size="100" tabindex="2" /></td>
        </tr>
        <tr>
            <td align="right">Title (line 4):</td>
            <td colspan="5"><input name="title4" id="title4" type="text" size="100" tabindex="2" /></td>
        </tr>
        <tr>
            <td align="right">File formats:</td>
            <td align="right"><i>editable:</i></td>
            <td ><select name="docformat_editable_id" id ="docformat_editable_id"><?php echo getDocFormatList(0, 1); ?></select></td>
            <td align="right">Filename:</td>
            <td colspan="4" align="left"><input name="file_editable" id="file_editable" type="text" size="50" tabindex="2" /></td>
        </tr>
        <tr>
            <td align="right"></td>
            <td align="right"><i>non-editable:</i></td>
            <td ><select name="docformat_noneditable_id" id ="docformat_noneditable_id"><?php echo getDocFormatList(0, 0); ?></select></td>
            <td align="right">Filename:</td>
            <td colspan="4" align="left"><input name="file_noneditable" id="file_noneditable" type="text" size="50" tabindex="2" /></td>
        </tr>
        <tr>
            <td></td>
            <td colspan="8">
            <div class="button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" id="submitNewDoc" role="button" aria-disabled="false">
                <span class="ui-button-text">Submit</span>
            </div>
            <div class="button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" id="cancelNewDoc" role="button" aria-disabled="false">
                <span class="ui-button-text">Cancel</span>
            </div>
            </td>
        </tr>
        </table>
    </form>

提交按钮的jquery:

    $( "#submitNewDoc" )
        .button()
        .click(function() {
            $( "#documents" ).submit();
        });

当我在FF和IE8或IE10中测试时,数据发布得很好。只有在IE9中才会发布数据,我收到“array {}”。

有没有人知道我做错了什么?

**更新回复穆罕默德的问题**

除了MySQL查询之外,php文件中没有任何内容:

    // All general includes
    require_once('config.php');
    require_once('functions.general.php');
    require_once('functions.dbase.php');
    //require_once("standardLists.php");

    // make a connection, so we can use mysql_real_escape_string
    $con = mysql_connect($db_host, $db_user, $db_password);
    if (!$con) { die('Could not connect: ' . mysql_error()); }


    // Initialise database object and establish a connection
    // at the same time - db_user / db_password / db_name / db_host
    $db = new ezSQL_mysql($db_user,$db_password,$db_name,$db_host);

    var_dump($_POST); // testing

    /* Storing the info into the DB */

    $sql1 = "INSERT INTO documents 
                    (company_id, docnrsupplier, docnrlab, docnrclient, title1, title2, title3, 
                    title4, docformat_editable_id, docformat_noneditable_id, file_editable, doccat_id, docsize_id, docphase_id, file_noneditable)
                    VALUES (
                            '".$_POST['company_id']."',
                            '".$_POST['docnrsupplier']."', 
                            '".$_POST['docnrlab']."', 
                            '".$_POST['docnrclient']."', 
                            '".$_POST['title1']."', 
                            '".$_POST['title2']."' , 
                            '".$_POST['title3']."',
                            '".$_POST['title4']."', 
                            '".$_POST['docformat_editable_id']."', 
                            '".$_POST['docformat_noneditable_id']."', 
                            '".$_POST['file_editable']."' , 
                            '".$_POST['doccat_id']."' , 
                            '".$_POST['docsize_id']."' , 
                            '".$_POST['docphase_id']."' , 
                            '".$_POST['file_noneditable']."')";

**更新2 **

我现在尝试使用两种按钮,但IE9中的结果保持不变:array(0) { }而IE8和IE10至少给我

array(16){[“company_id”] =&gt; string(0)“”[“docnrsupplier”] =&gt; string(0)“”[“doccat_id”] =&gt; string(0)“”[“docnrlab”] =&gt; string(0)“”[“docsize_id”] =&gt; string(0)“”[“docnrclient”] =&gt; string(0)“”[“revi”] =&gt; string(1)“A”[“title1”] =&gt; string(0)“”[“docphase_id”] =&gt; string(0)“”[“title2”] =&gt; string(0)“”[“title3”] =&gt; string(0)“”[“title4”] =&gt; string(0)“”[“docformat_editable_id”] =&gt; string(0)“”[“file_editable”] =&gt; string(0)“”[“docformat_noneditable_id”] =&gt; string(0)“”[“file_noneditable”] =&gt; string(0)“”}`

    <input class="button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" id="mySubmit" type="submit" value="Submit" />
    <div class="button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" id="submitNewDoc" role="button" aria-disabled="false">
        <span class="ui-button-text">Submit</span>
    </div>

我确定我犯了一个错误,我找不到它:-( 在同一页面上有两个表格是否有问题?他们有自己的名字和身份证,没有双重的字段名。

1 个答案:

答案 0 :(得分:1)

我想我已经找到了,虽然我对它很不满意: 表单字段嵌套在表中: <form><table><tr><td><input...>正如您在原始问题中看到的那样。

在进一步搜索SO后,我读到了一个关于jquery手风琴中表格内表格的问题。只是为了尝试我删除了有关该表的所有html,所以现在我有<accordion> -> <form> -> <input ....>

这很有效!因此,出于某种原因,我所做的嵌套必定会在IE9中遇到错误。

它看起来很糟糕,但它确实有效。无论如何它都是供内部使用的,所以它必须这样做。

我希望这也可以帮助那些遇到这个问题的人。