2016-05-05 2 views
0

Ich habe diese Funktion in meiner Eltern-Datei:Form.target = window.opener.name nicht funktioniert

$(function() { 
$('#xybutton').click(function (event) { 
    event.preventDefault(); 
    window.name = 'parentwindow'; 
    var popupwindow = window.open(
     'popup.php', 
     '', 
     'toolbar=0,location=0,directories=0,status=1,' + 
     'menubar=0,scrollbars=yes,resizable=yes,' + 
     'width=600,' + 
     'height=400' 
     ); 
    if(window.focus){ 
     popupwindow.focus(); 
    } 
}); 
}); 

Ich habe ein Formular in meinem Popup-Fenster

<form method="post" action="newdoc.php" enctype="multipart/form-data" class="ajax lock-page" id="xyform" name="xyform"> 

Ich habe diese Funktion in entsprechende js-Datei:

$(document).ready(function() { 
$('#xyform').target = 'parentwindow'; //I also tried window.opener.name 
console.log(window.opener.name); //This prints parentwindow 
}); 

aber immer noch das Ergebnis öffnet sich das Formular im Popup-Fenster statt in Eltern zu öffnen. Bitte sagen Sie mir, wo ich falsch liege.

+1

Was ist das erwartete Ergebnis? '.target' ist keine jQuery-Methode – guest271314

+0

Hoppla! Vielen Dank. Das wusste ich nicht. Das erwartete Ergebnis ist, dass das Ergebnis der Formularübergabe im übergeordneten Fenster geöffnet werden muss. Vielen Dank. Jetzt funktioniert es gut. Ich habe es in .attr geändert ('target', 'parentwindow'). –

Antwort

1

Sie legen die Eigenschaft .target für das jQuery-Objekt fest, das keine Bedeutung hat.

Was Sie wahrscheinlich benötigen, ist diese:

$('#xyform').attr('target', 'parentwindow'); 

Oder alternativ:

$('#xyform').get(0).target = 'parentwindow'; 

Letzterer verwendet get, die Ihnen das zugrunde liegende DOM-Objekt (die ersten in diesem Fall gibt, wird genau - das ist sowieso der einzige, weil du nach ID auswählst). Dies kann auch verwendet werden, um auf andere Eigenschaften zuzugreifen, falls sie nicht über jQuery zugänglich sind.

+0

Danke für die alternative Lösung. Ziemlich nützlich. :) –

+0

Sie können auch auf das zugrunde liegende Dom-Element zugreifen, indem Sie die Array-Literalsyntax '$ ('selector') [0] .target' verwenden – evolutionxbox