2013-04-13 83 views
-1

我想打開一個反饋窗口,並把一些js代碼裏面。這是我所做的:document.write js問題

$('#feedback').click(function(){ 
mw = window.open('','','width=560,height=460'); 
mw.document.write('<html><head>'); 
mw.document.write('<sc'+'ript type="text/javascript" src="{{STATIC_URL}}js/jquery-1.9.0.js"></scri'+'pt>'); 
mw.document.write('<sc'+'ript type="text/javascript"> function feedbacken(){'+ 
      'var catg = $("#catg").text(); var feedback = $("#feedback").text(); alert(catg feedback);' 
       +'}</scri'+'pt>'); 
mw.document.write('</head><body>'); 
mw.document.write('<div style="padding-left: 30px;">'); 
mw.document.write('<br/> Bitte wählen Sie die Kategorie aus: <br/> '); 
mw.document.write('<select id="catg"><option>--</option><option>Technisch</option> <option>Inhalt</option><option>Design</option></select>'); 
mw.document.write('<br/><br/>Hier bitte Ihr Feedback:'); 
mw.document.write('<p><textarea id="feedback" style="width:400px;height:100px"> </textarea></p>'); 
mw.document.write('<button onclick="feedbacken()"> Jetzt absenden </button>');    
mw.document.write('</div>'); 
mw.document.write('</body></html>'); 
}); 

現在,窗口打開罰款,但一旦我點擊按鈕,它說。 feedbacken()功能未定義。

有人可以破解這對我來說:)

這是我的反饋元件:

<a id="feedback">Feedback</a> 
+2

首先,我認爲你可以通過將HTML放在單獨的文件中並打開一個顯示該文件的新窗口而不是使用document.write來清除所有這些。這將使調試變得容易很多。 – orb

+0

如果我在教學,我會用這個作爲一個真實世界的例子,不要做什麼。有太多的錯誤和更好的方法去實現它。 – vol7ron

+0

@ vol7ron,真的嗎?你能告訴我更好的做法嗎?我也不喜歡這種方式 – doniyor

回答

1

我不知道這是主要的錯誤,但是這會導致錯誤:

alert(catg feedback); 

你可以將其更改爲:

alert(catg + feedback); 
+0

這是它。愚蠢的錯誤!非常感謝:) – doniyor

1
alert(catg feedback); 

這不是有效的。嘗試是這樣的:

alert(catg); 
alert(feedback); 

或:

alert('catg: ' + catg + ', feedback: ' + feedback); 

代替。

1

有幾個問題。

alert(catg feedback) 

應該讀...

alert(catg, feedback) 

此外,jQuery是不是在新窗口中初始化。

+0

第二個'mw.document.write()'包含jQuery。 – jfriend00