0

私はこのコードについて2つの問題に遭遇します:

  1. 「window.location.href='www.google.com';」を呼び出すと、別のWebサイトにリンクできません。javascriptクロージャで。

  2. このコードはIEブラウザでは機能しません(送信ボタンは表示されません)

以下はコードです:

HTMLパーティション:([フォルダの作成]ボタンで制御される非表示のフォーム)

<a href="#" class="mylink" title="Create Folder" onClick="modalPopup(0);">Create folder</a>
    <!-- modal content -->
    <div id="modal-content">
        <div id="modal-title"></div>
        <div id="modal-text"></div>
        <form name="input" action="" method="post">
            <div id="modal-field"></div>
            <input type="hidden" name="ID" id="ID">
            <input type="hidden" name="submitButton" id="submitButton">
        </form>
    </div>

Javascriptパーティション:(フォームを表示して送信イベントを処理します)

function deleteNode( elementId ) 
{
    var label=document.getElementById( elementId ); 
    while ( label.hasChildNodes() ) 
    { 
        label.removeChild( label.lastChild ); 
    }
}

function sendRequest( type, param )
{
    if ( type == "createFolder" )
    { 
        alert('create folder : ' + param ); 
        **window.location.href = "www.google.com";  //  just for test, but not working !**
    }
    return false;
}

function modalPopup( fileID ) 
{
    deleteNode("modal-title");
    deleteNode("modal-text");
    deleteNode("modal-field");

    var titleObj = document.createElement("h3");
    titleObj.innerText = "Create Folder";
    titleObj.textContent = "Create Folder";
    document.getElementById("modal-title").appendChild(titleObj);

    var textObj = document.createElement("a");
    textObj.innerText = "Enter new folder name";
    textObj.textContent = "Enter new folder name";
    document.getElementById("modal-text").appendChild(textObj);

    var fieldObj = document.createElement("input");
    fieldObj.setAttribute("type","input");
    fieldObj.setAttribute("name","createFolder");
    fieldObj.setAttribute("value","New Folder");
    fieldObj.setAttribute("id","modal-field");
    document.getElementById("modal-field").appendChild(fieldObj);

    // assign text field value
    document.getElementsByName('submitButton')[0].type = "submit";
    document.getElementsByName('submitButton')[0].value = "Create";
    **document.getElementsByName('submitButton')[0].onclick = function() { return sendRequest( "createFolder", fieldObj.value ); };**
    document.getElementsByName('ID')[0].value = fileID;             
}
4

1 に答える 1

1

jbabeyの権利:

<input type="hidden" name="submitButton" id="submitButton">

する必要があります:

<input type="submit" name="submitButton" id="submitButton">

置く

return false;

関数の最後に、送信ボタンにバインドしました

試してみてください:

window.location.href = "http://www.google.com";
于 2012-09-17T17:29:04.193 に答える