2012-08-06 66 views
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> 

回答

0

我從來沒有見過像這樣的設置。不確定是否可以發佈到只包含JavaScript的頁面。 在與表單的頁面,你不得不放棄從PHP文件中的所有的JavaScript到一個外部的.js文件,並添加

<script src="myjavascript.js"></script> 

到頁面的形式。

此外,當您將JavaScript放入外部文件時,請刪除標籤。 然後,您可以在窗體中運行驗證,並調用在對話框中呈現鏈接的函數。

+0

我的歉意,表單也在php文件裏面,所以它不僅僅是javascript裏面。我編輯了這個問題,將php文件中的表單和JavaScript代碼作爲一個代碼塊。 – 2012-08-06 17:37:20

+0

幾個點: 你不需要有兩個