在一个html

时间:2017-04-17 12:12:23

标签: javascript html

我需要在一个HTML文件上运行2个javascript文件。

<script type="text/javascript" src="scripts/enhancements.js"></script>
<script type="text/javascript" src="scripts/part2-payment.js"></script>

这两个脚本都将加载到我的payment.html页面

但它是冲突的,因为它正在加载底部而不是顶部。

脚本1 - part2-payment.js

/**
* Author: Kelvin Chong Choon Siong
* Target: payment.html
* Purpose: Validate and carry forward information to Payment.html
* Created: 14 Apr 2017
* Last updated: 17-04-17
*/
"use strict";

function destroyAll(){
    sessionStorage.clear();
    window.location = "index.html";
}

function calcCost(bikeType, quantity){
    var result = "";
    if (bikeType == "Road Bicycle (City Bike) $300") {
        result = (300) * quantity;
    }
    if (bikeType == "Cyclocross Bicycle $330") {
        result = (330) * quantity;
    }
    if (bikeType == "Touring  Bicycle $310") {
        result = (310) * quantity;
    }
    if (bikeType == "Track/Fixed-Gear Bicycle $380") {
        result = (380) * quantity;
    }
    if (bikeType == "Mountain Bicycle $340") {
        result = (340) * quantity;
    }
    if (bikeType == "BMX  Bicycle $380") {
        result = (380) * quantity;
    }
    if (bikeType == "Folding  Bicycle $450") {
        result = (450) * quantity;
    }
    if (bikeType == "Tandem  Bicycle $600") {
        result = (600) * quantity;
    }
    return result;
}

function getBooking(){
    if(sessionStorage.fname != undefined){    //if sessionStorage for username is not empty
        //confirmation text
        document.getElementById("fname").textContent = sessionStorage.fname + " " + sessionStorage.lname;
        document.getElementById('address').textContent = sessionStorage.address + ", " + sessionStorage.suburb + ", " + sessionStorage.state + ", " + sessionStorage.postcode;
        document.getElementById('emailadd').textContent = sessionStorage.emailadd;
        document.getElementById('phonenumber').textContent = sessionStorage.pnumber;
        document.getElementById('features').textContent = sessionStorage.extra;
        document.getElementById('comments').textContent = sessionStorage.comments;
        document.getElementById('type_bike').textContent = sessionStorage.bikeType;
        document.getElementById('quantity1').textContent = sessionStorage.quantity;
        document.getElementById('sizez').textContent = sessionStorage.size;
        document.getElementById('cost').textContent = ("AU$ " + calcCost(sessionStorage.bikeType, sessionStorage.quantity));
        //fill hidden fields
        document.getElementById("firstname").value = sessionStorage.fname;
        document.getElementById("lastname").value = sessionStorage.lname;
        document.getElementById("emailAddress").value = sessionStorage.emailadd;
        document.getElementById("homeAddress").value = sessionStorage.address;
        document.getElementById("suburbs").value = sessionStorage.suburb;
        document.getElementById("states").value = sessionStorage.state;
        document.getElementById("postcode").value = sessionStorage.postcode;
        document.getElementById("radioButtons").value = sessionStorage.radiobutton;
        document.getElementById("pnumber").value = sessionStorage.pnumber;
        document.getElementById("type_bike[]").value = sessionStorage.bikeType;
        document.getElementById("quantity[]").value = sessionStorage.quantity;
        document.getElementById("size[]").value = sessionStorage.size;
        document.getElementById("costFinal").value = calcCost(sessionStorage.bikeType, sessionStorage.quantity)
        document.getElementById("extraFeature").value = sessionStorage.extra;
        document.getElementById("comment").value = sessionStorage.comments;
    }
}

function cardExpiry(){
    var errMsg = "";
    var getExpiryDate = document.getElementById("expirydate").value;
    var getMonth = String(getExpiryDate).charAt(0) + String(getExpiryDate).charAt(1);
    var getYear = String(getExpiryDate).charAt(3) + String(getExpiryDate).charAt(4); 
    var dateNow = new Date ();
    var expiryInput = new Date();
    expiryInput.setFullYear('20' + getYear, getMonth-1, 1);

    if (expiryInput < dateNow){
        errMsg = "Your expiration date is before current date. Please change it.\n"
    }
    return errMsg;
}

function cardValidation() {
    /*Visa cards have 16 digits and start with a 4
    MasterCard have 16 digits and start with digits 51 through to 55
    American Express has 15 digits and starts with 34 or 37.*/
    var errMsg = "";
    var cardNumber = document.getElementById('cardnum').value;
    var cardType = document.getElementById('cardType').value;
    var number0 = String(cardNumber).charAt(0);
    var number1 = String(cardNumber).charAt(1);
    switch (cardType) {
        case "Visa":
        if ((number0 !== "4") || (cardNumber.length !== 16)) {
            errMsg = "Visa cards have 16 digits and start with a 4.\n";
        }
        break;
        case "Mastercard":
        if (((number0) !== "5") || ((number1) !== "1" && ((number1) !== "2") && ((number1) !== "3") && ((number1) !== "4") && ((number1) !== "5") ) || (cardNumber.length !== 16)) {
            errMsg = "MasterCard have 16 digits and start with digits 51 through to 55.\n";
        }
        break;
        case "Amex":
        if (((number0) !== "3") || ((number1) !== "4" && ((number1) !== "7")) || (cardNumber.length !== 15))  {
            errMsg = "Amex cards have 15 digits and start with a 34 or 37.\n";
        }
        break;
        default:
            errMsg = "Please write your correct card number.\n";
    }
    return errMsg;
}

function cvvValidation(){
    var errMsg = "";
    var cardType = document.getElementById('cardType').value;
    var cvvcheck = document.getElementById('CVV').value;
    //3 digits, for Visa and Mastercard, 4 digits for American Express.
    switch (cardType) {
        case "Visa":
        if (cvvcheck.length !== 3) {
            errMsg = "Visa cards have a CVV of 3 digits.\n";
        }
        break;
        case "Mastercard":
        if (cvvcheck.length !== 3) {
            errMsg = "MasterCards have a CVV of 3 digits.\n";
        }
        break;
        case "Amex":
        if (cvvcheck.length !== 4)  {
            errMsg = "Amex cards have a CVV of 4 digits..\n";
        }
        break;
        default:
            errMsg = "Please write your correct card CVV.\n";
    }
    return errMsg;
}


function validate() {
    var errMsg = "";
    var result = true;


    var checkCard = cardValidation();
    if (checkCard !== "") {
        errMsg = errMsg + checkCard;
        result = false ;
    }

    var checkCVV = cvvValidation();
        if (checkCVV !== "") {
        errMsg = errMsg + checkCVV;
        result = false ;
    }

    var checkExpiry = cardExpiry();
    if (checkExpiry !== ""){
        errMsg = errMsg + checkExpiry;
        result = false;
    }

    if (errMsg != "") {
        alert(errMsg);
    }

    return result;
}

function init() {
    getBooking();
    var regForm = document.getElementById("form2");
    regForm.onsubmit= validate;
    var destroyEverything = document.getElementById('cancelout');
    destroyEverything.onclick = destroyAll;
}

window.onload = init;

所以现在这是脚本2

Script 2 - enhancements.js
"use strict";

function writeNewMessage(){
    var sMessage = document.getElementById('spanny');
    sMessage.textContent = "this is a test";
}

function init2() {
    var labelTest = document.getElementById("booking_form");
    labelTest.onclick = writeNewMessage;
}

window.onload = init2;

我无法弄清楚如何同时加载两者。

我有一些限制(因为网上提供的大多数解决方案我都不能使用)

body onload
No Inline javascript
No jQuery

所以我想知道是否还有另一个让两者兼顾?

2 个答案:

答案 0 :(得分:1)

你的onloads互相覆盖:

window.onload = init2;//will override window.onload=init;

所以:

window.addEventListener("load",init2);

所有其他点击次数相同

答案 1 :(得分:0)

通过使用

进行管理
func textFieldDidChange(textField: UITextField){

 if (textField.tag == 100){
    //print ("Should return is called and the value is \(textField.text!) W ")
    watts = Double(textField.text!)!
    calculatewatts(watts)
}
else if (textField.tag == 200) {
    //print ("Should return is called and the value is \(textField.text!) hours")
    hours = Double(textField.text!)!
    calculatehours(hours)
}


}

在任何一个js脚本上执行此操作都可以。 都好。在n'est jamais mieux servi que par soi-meme。