1

我有一个奇怪的问题一直困扰着我。我有一个自制的内容管理系统,对于大多数 CRUD 操作,通过检查数据库中存在哪些字段,以用户友好的方式输出以编辑内容,然后将该内容提交回数据库。这些操作在 Chrome 中完美运行,但是在 Internet Explorer 和 Safari 中,每当我点击提交按钮时,页面似乎只是在不处理任何信息的情况下刷新。

function createInsertForm($table, $formDesc, $carry, $carryUrl, $ext='', $formAppend='')
{
    // init globals
    global $cmsdir;
    global $pluginsdir;
    // put it together
    echo '<script type="text/javascript" src="' . $pluginsdir . 'ckfinder/ckfinder.js"></script><script type="text/javascript" src="' . $pluginsdir . 'ckeditor/ckeditor.js"></script>';
    echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="POST" class="form-horizontal" '.$formAppend.'>';
    createForm($table, 'insert', $formDesc);
    createFormButtons('yes', 'yes');
    if ($_POST['submit'] == 'Submit') {
        insertIntoDb($table, $carry, $carryUrl, $ext);
    }
    echo '</form>';
}

function createFormButtons($submit, $reset)
{
    echo '<div class="form-actions-min">';
    if ($submit == 'yes') {
        echo '<input name="submit" type="submit" id="submit" class="btn btn-success">';
    }
    if ($reset == 'yes') {
        echo '<input name="reset" type="reset" id="reset" class="btn btn-warning btn-space">';
    }
    echo '</div>';
}

页面输出示例:

<script type="text/javascript" src="../../neou_cms/plugins/ckfinder/ckfinder.js"></script>
<script type="text/javascript" src="../../neou_cms/plugins/ckeditor/ckeditor.js"></script>
    <form action="/neou_cms/external_forms/testimonial.php" method="POST" class="form-horizontal" >
        <div class="form-desc"></div>
        <h3>Input Fields</h3>
        <div class="control-group">
            <label class="control-label">Name</label>
            <div class="controls">
                <input type="text" name="name" value="" class="input-xlarge" id="tag_name" /></div>
        </div>
        <div class="control-group">
            <label class="control-label">Position</label>
            <div class="controls">
                <input type="text" name="position" value="" class="input-xlarge" id="tag_position" />
            </div>
        </div>
        <div class="control-group">
            <label class="control-label">Company</label>
            <div class="controls">
                <input type="text" name="company" value="" class="input-xlarge" id="tag_company" />
            </div>
        </div>
        <h3>Content Fields</h3>
        <div class="control-group">
            <label class="control-label">Quote</label>
            <div class="controls">
                <textarea name="quote" id="quote" rows="8" style="width:305px;"> </textarea>
            </div>
        </div>
        <input type="hidden" name="id" value="175013988" />
        <div class="form-actions-min"><input name="submit" type="submit" id="submit" class="btn btn-success">
            <input name="reset" type="reset" id="reset" class="btn btn-warning btn-space">
        </div>
    </form>
</div>

我希望我可以更具体并提供更好的概述,但这需要很长时间!有没有人遇到过这样的问题,或者可能从我的简短代码中知道可能出了什么问题?

4

1 回答 1

9

您遇到的问题是您没有value<input type="submit">按钮指定 a 。由于您没有指定值,因此用户代理可以自由使用他们选择的任何值作为默认标签。在 Chrome 中,它是“提交”。在 IE 和 Safari 中,它是“提交查询”。

避免这个问题的方法是给你的元素添加一个value属性:input

<input type="submit" id="submit" value="Submit">
于 2013-02-22T04:03:34.587 回答