2012-06-13 54 views
0

我想阻止NaN在這些文本框中顯示:「total_full」,「total_half」,「total_single」。我有已嘗試將所有計算/數字字段的初始值設置爲「0」,但在選擇「check_out」日期並且total_days_acc更新之前,「total_single」仍爲NaN?如何防止在Datepicker中選擇日期之前的isNaN

我不知道我應該把多少代碼放在這裏,我不願意留下一些重要的東西,所以這裏是一個鏈接到一個問題,我錯誤地發佈「所有」的編碼。 :

hide/show fields based on input value

謝謝

<td>Accommodation:</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td><p>Check in Date</p></td> 
    <td><input type="text" name="check_in_date" id="check_in_date" class="datepicker" /></td> 
    <td><p>&nbsp;</p></td> 
    <td><p>Check out Date</p></td> 
    <td><p> 
     <input type="text" name="check_out_date" id="check_out_date" class="datepicker" /> 
     </p></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>Total Days Accommodation</td> 
    <td><input type="text" name="total_days_acc" id="total_days_acc" /></td> 
    </tr> 
    <tr> 
    <td>Number of Rooms:</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>Single</td> 
    <td><input type="text" name="no_of_rooms_single" id="no_of_rooms_single" /></td> 
    <td>&nbsp;</td> 
    <td>Double/Twin</td> 
    <td><input type="text" name="no_of_rooms_double" id="no_of_rooms_double" /></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>Contact Person</td> 
    <td><input type="text" name="contact_person" id="contact_person" /></td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>Telephone Number</td> 
    <td><input type="text" name="tel_no" id="tel_no" /></td> 
    <td>&nbsp;</td> 
    <td>Fax Number</td> 
    <td><input type="text" name="fax_no" id="fax_no" /></td> 
    </tr> 
    <tr> 
    <td>Cell Number</td> 
    <td><input type="text" name="cell_no" id="cell_no" /></td> 
    <td>&nbsp;</td> 
    <td>Email</td> 
    <td><input type="text" name="email" id="email" /></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>Full Day Conference @ R260.00 p/p</td> 
    <td><input type="text" name="full_day" id="full_day" /></td> 
    <td>&nbsp;</td> 
    <td>Total Cost Full Day</td> 
    <td><input type="text" name="total_full" id="total_full" readonly="readonly" /></td> 
    </tr> 
    <tr> 
    <td>Half Day Conference @ R240.00 p/p</td> 
    <td><input type="text" name="half_day" id="half_day" /></td> 
    <td>&nbsp;</td> 
    <td>Total Cost Half Day</td> 
    <td><input type="text" name="total_half" id="total_half" readonly="readonly" /></td> 
    </tr> 
    <tr> 
    <td>Single Rooms @ R480.00 p/p</td> 
    <td><input type="text" name="single_rooms" id="single_rooms" /></td> 
    <td>&nbsp;</td> 
    <td>Total Cost Single Rooms</td> 
    <td><input name="total_single" type="text" id="total_single" readonly="readonly" /></td> 
    </tr> 
    <tr> 
    <td>Double/Twin Rooms @ R720.00 p/p</td> 
    <td><input type="text" name="double_rooms" id="double_rooms" /></td> 
    <td>&nbsp;</td> 
    <td>Total Cost Double/Twin</td> 
    <td><input name="total_double" type="text" id="total_double" readonly="readonly" /></td> 
    </tr> 
    <tr> 
    <td>Data Projector @ R400.00 rental p/day</td> 
    <td><input type="text" name="data_proj" id="data_proj" /></td> 
    <td>&nbsp;</td> 
    <td>Total Cost Projector Rental</td> 
    <td><input name="total_project" type="text" id="total_project" readonly="readonly" /></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>Sub Total</td> 
    <td><input type="text" name="sub_total" id="sub_total" /></td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td height="23">&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 

    </form> 
</table> 

</div> 

<div id="hideme"> 
Hello Hideme 
</div> 


<p>&nbsp;</p> 
<p>&nbsp;</p> 
</body> 
</html> 

<script type="text/javascript"> 
//Datepicker 
$(function() { 
    $(".datepicker").datepicker({ minDate: -0, maxDate: "+100M +10D",dateFormat: 'dd-mm-yy'}) 
    ({ 
     changeMonth: true, 
     changeYear: true, 
    }); 
     }); 

//Datepicker Enquiry Date Set to Today 
var enquiry_date = $.datepicker.formatDate('dd-mm-yy', new Date()); 
document.getElementById('enquiry_date').value = enquiry_date; 


//Datepicker Conference in/out 
var calcDate = function() { 
    var start = $('#conference_date_in').datepicker('getDate'); 
    var end = $('#conference_date_out').datepicker('getDate'); 
    var days = (end - start)/1000/60/60/24 + 1; 

    if(days==0) {days=1 
    } 
    if(days >= 0) { 
    document.getElementById('total_days').value = days; 
    } 
     } 


$('#conference_date_out').change(calcDate); 
$('#conference_date_in').change(calcDate); 




//Datepicker Check in/Out Accommodation 
var calcDateAcc = function() { 
    var startacc = $('#check_in_date').datepicker('getDate'); 
    var endacc = $('#check_out_date').datepicker('getDate'); 
    var daysacc = (endacc - startacc)/1000/60/60/24; 


    if(daysacc==0) daysacc=1 
    if(daysacc >= 0) { 
    document.getElementById('total_days_acc').value = daysacc; 
    } 
     } 


$('#check_in_date').change(calcDateAcc); 
$('#check_out_date').change(calcDateAcc); 



//Calculate Total Cost FullDay Conference 
function calculateFull() 
{ 
    var fulldays = parseInt(document.getElementById("full_day").value); 

    var no_of_delegates = parseInt(document.getElementById("no_of_delegates").value); 

    var fullprice = 260; 

    var resultfull = fulldays * no_of_delegates * fullprice; 

    document.getElementById("total_full").value = resultfull; 
    } 

    $('#full_day').change(calculateFull).keyup(calculateFull); 



//Calculate Half Day conference total 

    function calculateHalf() 
{ 
    var halfdays = parseInt(document.getElementById("half_day").value); 

    var no_of_delegates = parseInt(document.getElementById("no_of_delegates").value); 

    var halfprice = 240; 

    var resulthalf = halfdays * no_of_delegates * halfprice; 

    document.getElementById("total_half").value = resulthalf; 
    } 

    $('#half_day').change(calculateHalf).keyup(calculateHalf); 



//Calculate Total Cost Single Rooms 
    function calculateSingle() 
{ 
    var single_rooms = parseInt(document.getElementById("single_rooms").value); 

    var total_days_acc = parseInt(document.getElementById("total_days_acc").value); 

    var single_rooms_price = 480; 

    var resultsingle = single_rooms * total_days_acc * single_rooms_price; 

    document.getElementById("total_single").value = resultsingle; 
    } 

    $('#single_rooms').change(calculateSingle).keyup(calculateSingle); 
    $('#check_in_date').change(calculateSingle); 
    $('#check_out_date').change(calculateSingle); 


//Hide me Testing 
$("#full_day").keyup(function(){ 

     if ($('#full_day').val() == "1") { 
      $("#hideme").show("fast"); //Slide Down Effect 
     } 
     else { 
      $("#hideme").hide("fast"); //Slide Up Effect 
     } 
    }); 
</script> 
+3

請張貼一些代碼。 – j08691

+1

您應該發佈*儘可能少的代碼*,它仍然表示所討論代碼的所有*功能相關組件*。 「&nbsp」的運行不是你問題的一部分,絕對不應該包括在內;你的大部分JS和你的輸入元素可能都是相關的,應該包括在內。 – apsillers

回答

1

而不是僅僅插入值到頁面,只是這樣做:

document.getElementById("total_days").value = isNaN(days) ? 0 : days; 
+0

謝謝。那完美的作品:-) – user1426583

相關問題