0

ボタンのクリック時に入力タイプ ファイルに隠されている入力タイプを変更しようとしています。コードは mozilla firefox と Internet Explorer では問題なく動作しますが、Google Chrome と Safari ブラウザでは動作しません。以下は私のコードです:

<script type="text/javascript">
function hide()
{
    $(document).ready(function()
    {
        $('#att').hide();
        $('#change').hide();
        $('#change1').hide();
        document.getElementById('fileatt').type='file';

    })
} 
<input type="text" name="att" value="<?php echo $name; ?>" id="att" disabled="disabled" size="12" style="float:left;">
<input name="fileatt" id="fileatt" type="hidden" size="12" style="float:left;">
<input type="button" name="browse" id="change" value="Browse" style="float:left;">
<input type="button" id="change1" value="Change" onclick="hide()">

無効なテキスト ボックスには、データベースから取得した以前の値が保持されます。そして、値が「参照」のボタンが追加され、入力タイプのファイルのように見えます。変更ボタンをクリックすると、テキストフィールドと参照ボタンが非表示になり、入力タイプのファイルが表示されます。Firefox と Internet Explorer ではすべて正常に動作しています。しかし、私が直面している問題は、Chrome と Safari で、テキスト ボックスと参照ボタンが正常に消えますが、入力タイプのファイルが表示されないことです。

4

3 に答える 3

0

typeの を変更することはできないinputため、これは無効なコードです。

document.getElementById('fileatt').type='file';

2 つの要素を使用し、一方を非表示にして他方を表示し、それらを切り替えます。

詳細はこちら:
jQuery を使用して入力フィールドのタイプを変更する

于 2012-04-04T09:43:48.143 に答える
0

次のようなものを試してください:

function hide()
    {
        $(document).ready(function()
        {
            $('#att').hide();
            $('#change').hide();
            $('#change1').hide();
            $('#fileatt').attr('type', 'file');                //document.getElementById('fileatt').type='file';

        })
    } 
于 2012-04-04T09:47:09.323 に答える
0

これを試して

$('#fileatt').attr('type', 'file');

代わりに

document.getElementById('fileatt').type='file';
于 2012-04-04T09:49:54.353 に答える