I need to get model data into a javascript variable and use it as an int to compare values. But I can only figure out how to get the model data as strings, otherwise the compiler complains.
So how can I get the max and taskBudgetHours as int variables in the Javascript?
<script type="text/javascript">
$(document).ready(function () {
$("#taskForm").submit(function (e) {
var taskBudgetHours = $('#BudgetHours').val();
var max = '<%: Model.Project.RemainingBudgetHours %>';
alert(taskBudgetHours);
alert(max);
if (taskBudgetHours <= max) { //This doesn't work, seems to treat it as strings...
return true;
}
else {
//Prevent the submit event开发者_StackOverflow and remain on the screen
alert('There are only ' + max + ' hours left of the project hours.');
return false;
}
});
});
</script>
For max
, don't put quotes around it:
var max = <%: Model.Project.RemainingBudgetHours %>;
For taskBudgetHours
, use the built-in JavaScript parseInt
function:
var taskBudgetHours = parseInt($('#BudgetHours').val(), 10);
Note the use of the radix parameter for parseInt
; this prevents e.g. "020"
as being parsed as octal:
parseInt("020") === 16 // true!
I would try to assign the Model.Project.RemainingBudgetHours to a hidden field on page load and then get its value as you do with the taskBudgetHours. Also not quite sure but you can try:
var max = parseInt('<%: Model.Project.RemainingBudgetHours %>')
精彩评论