2013-10-13 169 views
-4

我創建了兩個提交按鈕,但是我希望函數能夠一個接一個地運行。Javascript - 如何調用第二個函數

當提交按鈕點擊 運行功能validateBoxes 完成 運行功能validateBooking

我已經粘貼下面我的代碼的時候。新手如此真的很感謝幫助。謝謝。

<html> 
<head> 
<title>Jet2it Booking Service</title> 
<script language="javascript" type="text/javascript"> 
function validateBoxes() { 
    var result = true; 
    var msg = ""; 
    if (document.Holiday.firstname.value == "") { 
     msg += "You must enter your firstname \n"; 
     document.Holiday.firstname.focus(); 
     document.getElementById('firstname').style.color = "red"; 
     result = false; 
    } 
    if (document.Holiday.secondname.value == "") { 
     msg += "You must enter your secondname \n"; 
     document.Holiday.secondname.focus(); 
     document.getElementById('secondname').style.color = "red"; 
     result = false; 
    } 
    if (msg == "") { 
     return result; 
    } 
    { 
     alert(msg) 
     return result; 
    } 
} 

function validateBooking() { 
    var result = true; 
    var msg = ""; 
    var booking = ""; 
    if (Holiday.bookings[0].checked == true) { 
     booking = "Italy"; 
    } 
    if (Holiday.bookings[1].checked == true) { 
     booking = "Malta"; 
    } 
    if (Holiday.bookings[1].checked == true) { 
     booking = "Portugal"; 
    } 
    if (confirm("You have selected " + booking + ". Continue?")) { 
     if (msg == "") { 
      return result; 
     } 
     { 
      alert(msg) 
      return result; 
     } 
    } 
    else { 
     alert("booking Error"); 
     return false; 
    } 
} 
</script> 
</head> 
<body> 
<form name="Holiday" method="post" action="confirmed.html"> 
<table width="50%" border="0"> 
<tr> 
<td id="firstname">First firstname</td> 
<td><input type="text" name="firstname" /></td> 
</tr> 
<tr> 
<td id="secondname">Second name</td> 
<td><input type="text" name="secondname" /></td> 
</tr> 
<tr> 
     <td><label> 
     <input type="radio" name="bookings" value="Italy"/> 
     Italy</label></td> 
    </tr> 
    <tr> 
     <td><label> 
     <input type="radio" name="bookings" value="Malta"/> 
     Malta</label></td> 
    </tr> 
    <tr> 
     <td><label> 
     <input type="radio" name="bookings" value="Portugal"/> 
     Portugal</label></td> 
    </tr> 
<tr> 
<td><input type="submit" name="Submit_firstname_etc" 
value="Submit_firstname_etc" onClick="return validateBoxes();" /></td>   
<td><input type="reset" name="Reset" value="Reset" /></td> 
</tr> 
<tr> 
<td><input type="submit" name="Submit_Destination" 
value="Submit_Destination" onClick="return validateBooking();" /></td> 
<td><input type="reset" name="Reset" value="Reset" /></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
+0

尋求幫助時,請人做清晰格式化你的代碼的禮貌。這次我已經爲你做了。你還會注意到當你這樣做的時候,你會發現代碼中沒有任何用途的塊(比如'validateBoxes'末尾的塊)。我懷疑你錯過了一些別的東西。 –

回答

4

創建一個按所需順序調用兩個函數的函數, 東西喜歡:

function validateBoth() { 
    var result = validateBoxes(); 
    if (result) { 
     result = validateBooking(); 
    } 
    return result; 
} 

...然後使用該功能,無論它是您要使用這兩個功能。

0

添加封裝兩個函數並將其綁定到按鈕的新函數。如果該函數返回false,則它不會發布到您的確認頁面。

<script language="javascript" type="text/javascript"> 
function validateBoth() { 
    if (validateBoxes() && validateBooking()) { 
     return true; 
    } else { 
     return false; 
    } 
} 
</script> 

或者你可以看看代碼;這和前面的代碼塊一樣。如果兩個函數都返回true,那麼validateBoth將返回true;否則,validateBoth將返回false。

<script language="javascript" type="text/javascript"> 
function validateBoth() { 
    return (validateBoxes() && validateBooking()); 
} 
</script> 

然後,在表單的某處,你扎validateBoth功能,以您的按鈕的onClick功能:

<input type="submit" name="One Button" onClick="return validateBoth();" /> 
相關問題