0
我想做一個對話框,加載一個外部的PHP文件與窗體,要求的信息,包括使用jQuery datepicker和JavaScript代碼來檢查是否所有的在提交之前填寫字段。我彈出的對話框正確,但外部php文件中的JavaScript不起作用(日曆不會彈出,表單驗證檢查不起作用)。我正在使用外部的php文件,因爲我設置了鏈接來傳遞一個變量來填充表單的一部分。我不確定這些信息是否有用,但是在正常的窗口鏈接中加載php文件的效果非常好,只有在javascript無法正常工作的對話框中。jquery對話框 - 外部鏈接的javascript不工作
這裏是腳本我有一個對話框:
<script type="text/javascript">
$(document).ready(function() {
$('#order a').each(function() {
var $link = $(this);
var $dialog = $('<div></div>')
.load($link.attr('href') + ' #content')
.dialog({
autoOpen: false,
title: $link.attr('title'),
width: 500,
height: 400
});
$link.click(function(){
$dialog.dialog('open');
return false;
});
});
});
</script>
這是我有一個彈出的對話框代碼:
<div id="order">
<a href="package.php?code=NY1" title="Package Booking"><img src="images/order.png"></a>
</div>
的JavaScript代碼和形式的PHP文件:
<head>
<script type="text/javascript">
$(function(){
// Datepicker
$('#pdate').datepicker({
inline: true,
minDate: 0,
});
</script>
<script type="text/javascript">
function packageValidator(){
var pdate = document.getElementById('pdate');
if(notEmpty(pdate, "Please enter a departure date.")){
return true;
}
return false;
}
function notEmpty(elem, helperMsg){
if(elem.value.length == 0){
alert(helperMsg);
elem.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<div id="content">
<form action="send_package.php" method="post" onsubmit='return packageValidator()' >
<table>
//Form Information
<tr>
<td><input id="pdate" name="pdate" type="text"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
</div>
</body>
我的歉意,表單也在php文件裏面,所以它不僅僅是javascript裏面。我編輯了這個問題,將php文件中的表單和JavaScript代碼作爲一個代碼塊。 – 2012-08-06 17:37:20
幾個點: 你不需要有兩個標籤背對背。您可以打開一次並關閉一次。不知道這是從調試還是如果你複製和粘貼,但它應該仍然工作。 我注意到minDate後有一個額外的逗號:0, - 嘗試刪除它。如果您使用的是IE或Chrome,則可以點擊F12獲取開發者工具,然後點擊「腳本」。然後看看它是否給你任何其他的JavaScript錯誤,可能會阻止它的工作。通常一個額外的逗號,缺少squigglie等會阻止大多數(如果不是所有的)代碼工作。 – Losbear 2012-08-06 19:27:40
我嘗試刪除逗號並且問題仍然存在。我認爲它與第一個代碼框中的某些內容有關,因爲只有當我將它作爲對話框加載時纔會出現問題。 – 2012-08-07 13:42:31