Search code examples
javascriptgoogle-chromemozilla

Javascript Code only works in Chrome


I am having some trouble getting my code to run on different browsers. I have written calculation code in javascript, however, this only work in Chrome, but not in some other browsers.

here is the screenshot with mozilla mozilla keep giving 1 value from the calculating result

here is the screenshot with chrome with chrome it give a success

This is my form -

<div class="control-group">
    <?php echo $form->labelEx($model,'START_DATE', array('class'=>'control-label')); ?>
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker',
            array(
                'name'=>'TrnProjectScheduleAct[START_DATE]',
                'id'=>'TrnProjectScheduleAct_START_DATE',
                'value'=>$newformat = $model->START_DATE===NULL ? '' : date('d-M-Y', strtotime($model->START_DATE)),
                'options'=>array(
                'showAnim'=>'fold', 
                'dateFormat' => 'dd-M-yy',
                'onSelect' => 'js:function(){
                    myUpdate(                                               
                        $("#TrnProjectScheduleAct_START_DATE").val(),
                        $("#TrnProjectScheduleAct_END_DATE").val(),
                        $("#TrnProjectScheduleAct_TOTAL")
                    );}',
                ),
                'htmlOptions'=>array(
                    'style'=>'height:20px;', 'readonly'=>true
                ),
                )); 
                ?>
    <?php echo $form->error($model,'START_DATE'); ?>
</div>

<div class="control-group">
    <?php echo $form->labelEx($model,'END_DATE', array('class'=>'control-label')); ?>
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker',
            array(
                'name'=>'TrnProjectScheduleAct[END_DATE]',
                'id'=>'TrnProjectScheduleAct_END_DATE',
                'value'=>$newformat = $model->END_DATE===NULL ? '' : date('d-M-Y', strtotime($model->END_DATE)),
                'options'=>array(
                'showAnim'=>'fold', 
                'dateFormat' => 'dd-M-yy',
                'onSelect' => 'js:function(){
                    myUpdate(                                               
                        $("#TrnProjectScheduleAct_START_DATE").val(),
                        $("#TrnProjectScheduleAct_END_DATE").val(),
                        $("#TrnProjectScheduleAct_TOTAL")
                    );}'
                ),
                'htmlOptions'=>array(
                    'style'=>'height:20px;', 'readonly'=>true
                ),
                )); 
                ?>
    <?php echo $form->error($model,'END_DATE'); ?>
</div>

<div class="control-group">
    <?php echo $form->labelEx($model,'DAYS', array('class'=>'control-label')); ?>
    <?php echo $form->textField($model,'DAYS',array('size'=>10,'maxlength'=>10, 'readonly'=>true, 'id'=>'TrnProjectScheduleAct_TOTAL')); echo "    Estimasi hari belum termasuk tanggal merah"; ?>
    <?php echo $form->error($model,'DAYS'); ?>
</div>

this is the script

<script>
    $('#TrnProjectScheduleAct_START_DATE, #TrnProjectScheduleAct_END_DATE').change(function () {
            if ($('#TrnProjectScheduleAct_START_DATE').is(":checked")) {
                $('#TrnProjectScheduleAct_END_DATE').attr('disabled', true);
            }
            else {
                $('#TrnProjectScheduleAct_END_DATE').attr('disabled', false);
            }

            if ($('#TrnProjectScheduleAct_END_DATE').is(":checked")) {
                $('#TrnProjectScheduleAct_START_DATE').attr('disabled', true);
            }
            else {
                $('#TrnProjectScheduleAct_START_DATE').attr('disabled', false);
            }
        });
    function myUpdate(dt1, dt2,upd){
            var msec1 = dt1;            
            var date1 =  new Date(msec1);
            var msec2 = dt2;
            var date2 =  new Date(msec2);
            var diff = (isFinite(Math.round (date2 - date1) / 86400000) && Math.round (date2 - date1) / 86400000 || 0);
            var wEnd=0;

            if(date1>0 || date2>0){
                    for(var i=0; i<=diff; i++){
                        if(date1.getDay() ==6 || date1.getDay()==0){
                            wEnd = wEnd + 1;
                        }
                        date1.setDate(date1.getDate() + 1);
                    }
                }
                upd.val(Math.round((diff-wEnd)+1));
            };
    </script> 

Does anyone know what the problem is here? Hope you can help, and thanks in advance.


Solution

  • there's some different format in chrome and firefox format. the problem is I'm using dd-mm-yyyy format. and it's only work at my chrome. when i remove "-", it works at both browser