1

是否可以阻止一个 javascript 文件从不同的 javascript 文件执行?

例如。

HTML

<!doctype html>
<html>
   <head>
      <title>jQuery UI Dialog functionality</title>
      <link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
      <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
      <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
      <!-- CSS -->

      <!-- Javascript -->
      <script src="checkout.js"></script>
      <script src="dummy.js"></script>

   </head>
   <body>
      Pickup Date: <input type="text" maxlength="10" name="Orders.Custom_Field_PickupDate" value=""> 
      <br />
      Return Date: <input type="text" maxlength="10" name="Orders.Custom_Field_ReturnDate" value=""> 
      <br />

        <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#EEEEEE" id="table_checkout_cart0">
            <tr>
                <td align="left">
                    <br>
                </td>
            </tr>
            <tr>
                <td> <span id="span_Shopping_Cart_UnEditable">
                <table border="0" cellpadding="10" cellspacing="1" id="v65-onepage-CartSummary">
                    <tr>
                        <td>
                            <table id="v65-onepage-ordersummary-items" border=0 cellpadding=2 cellspacing=1 width="580"><tr id="v65-onepage-ordersummary-header-row">
                                <td class="v65-onepage-ordersummary-itemcode v65-onepage-ordersummary-header" style="color:#000000;font-weight:bold">
                                    Code
                                </td>
                                <td class="v65-onepage-ordersummary-itemname v65-onepage-ordersummary-header" style="color:#000000;font-weight:bold">
                                    Name
                                </td>
                                <td class="v65-onepage-ordersummary-itemprice v65-onepage-ordersummary-header" style="color:#000000;font-weight:bold">
                                    Price
                                </td>
                                <td class="v65-onepage-ordersummary-itemqty v65-onepage-ordersummary-header" style="color:#000000;font-weight:bold">
                                    Qty
                                </td>
                                <td class="v65-onepage-ordersummary-itemtotal v65-onepage-ordersummary-header" style="color:#000000;font-weight:bold">
                                    Total
                                </td>
                    </tr>
            <tr>
                <td class="v65-onepage-ordersummary-itemcode" style="color:#666666">
                    K10306
                </td>
                <td class="v65-onepage-ordersummary-itemname" style="color:#666666">
                    MYT Works 4ft Large Slider Kit
                </td><td class="v65-onepage-ordersummary-itemprice" style="color:#666666">
                    $160.00
                    <br />
                    exc Tax
                </td>
                <td class="v65-onepage-ordersummary-itemqty" style="color:#666666">
                    1
                </td>
                <td class="v65-onepage-ordersummary-itemtotal" style="color:#666666">
                    $160.00
                    <br />10% Tax = $16.00
                </td>
            </tr>
            <tr>
                <td class="v65-onepage-ordersummary-itemcode" style="color:#666666">
                    C10881
                </td>
                <td class="v65-onepage-ordersummary-itemname" style="color:#666666">
                    Apurture V-Control USB Remote Focus
                </td>
                <td class="v65-onepage-ordersummary-itemprice" style="color:#666666">
                    $18.00
                    <br />
                    exc Tax
                </td>
                <td class="v65-onepage-ordersummary-itemqty" style="color:#666666">
                    1
                </td>
                <td class="v65-onepage-ordersummary-itemtotal" style="color:#666666">
                    $18.00
                    <br />
                    10% Tax = $1.80
                </td>
            </tr>
        </table>


      <div id="IncompletePickupDate-Dialog" title="Incomplete Pickup Date">Please enter pickup date.</div>
      <div id="IncompleteReturnDate-Dialog" title="Incomplete Return Date">Please enter return date.</div>
      <br />
      <input type="button" value="Place Order" id="btnSubmitOrder">
      <br />


   </body>
</html>

JS 01 - checkout.js

function checkItems() {
    var returnValue = 0;
    $('#v65-onepage-ordersummary-items tr').each(function() {
        $this = $(this);
        var code = $.trim($this.find(".v65-onepage-ordersummary-itemcode").html());
        if ( code.charAt(0) == 'K' ) {
            returnValue = 1;
            return false; 
        }
    });
    return returnValue;
}

$(function() {
    $('input[name="Orders.Custom_Field_PickupDate"]').datepicker({
         dateFormat:'dd/mm/yy', showButtonPanel: true
    });
    $('input[name="Orders.Custom_Field_ReturnDate"]').datepicker({
         dateFormat:'dd/mm/yy', showButtonPanel: true
    });
    $( "#IncompletePickupDate-Dialog").dialog({
        autoOpen: false,  
    });
    $( "#IncompleteReturnDate-Dialog").dialog({
        autoOpen: false,  
    });  
    $( "#btnSubmitOrder" ).click(function(e) {
        var pickupDate = $('input[name="Orders.Custom_Field_PickupDate"]').val().length;
        var returnDate = $('input[name="Orders.Custom_Field_ReturnDate"]').val().length;
        if (checkItems()) {
            if (pickupDate == 0) {
                e.preventDefault();
                $( "#IncompletePickupDate-Dialog" ).dialog( "open" );
            }
            else if (returnDate == 0) {
                e.preventDefault();
                $( "#IncompleteReturnDate-Dialog" ).dialog( "open" );
            }
        }   
        if ((pickupDate !=0 && returnDate != 0) || checkItems() == 0) {
            // TODO: Direct to Complete.html which displays just text saying Done.
        }
        console.log(checkItems());
    });
});

JS 02 - dummy.js

$(function() {
    $( "#btnSubmitOrder" ).click(function(e) {
        window.location.replace("http://www.google.com");
    });
});

我想要做的是,如果pickupDate 或returnDate 等于0(checkout.js 中的代码),我想停止所有javascript 文件的运行,并且我不希望dummy.js 执行。如果pickupDate 和returnDate 不等于0,那么我想继续执行。

我想在我大学假期期间在他的网站上帮助一位朋友。我无法合并这两个文件,因为该软件是专有软件,并且有很多限制。我无法编辑他们的代码,因为它是硬编码的,但我可以上传 html、css、javascript 或 jQuery 文件。

在他的网站上,他销售和出租产品——所有出租产品都以字母“K”开头,所有销售产品都以其他字母开头。在他的结帐页面上,他目前必须输入销售和租​​赁产品的取货日期和退货日期,但他只希望用户输入租赁产品的取货或退货日期。

我上面写的代码只有在点击“btnSubmitOrder”时才会执行,目前这个按钮有默认功能,我无权访问。所以为了实现这一点,我考虑在默认功能之上放置一个 javascript 文件,并尝试我想做的事情

注意:上面的文件只是我在本地做的一些测试,真实文件太大,无法粘贴到这里。

如果这没有意义,或者需要更多信息,请告诉我。

提前致谢。

4

0 回答 0