2013-10-13 38 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();" /> 
相关问题