Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery hide()不适用于IE和Safari,适用于FF_Javascript_Jquery_Html_Safari - Fatal编程技术网

Javascript jquery hide()不适用于IE和Safari,适用于FF

Javascript jquery hide()不适用于IE和Safari,适用于FF,javascript,jquery,html,safari,Javascript,Jquery,Html,Safari,提前感谢您提供的任何帮助 我有一个表单,上面有一个日期选择器,所以如果你点击输入框,就会弹出一个漂亮的日历。单击日历中的特定日期,然后在输入框中填写日期 接下来,我有一个用于选择时间的输入框。根据一周中的哪一天,时间列表会发生变化。例如,如果选择星期五,则仅显示上午10点到下午1点的选项 我只在firefox中使用它。在IE和Safari上,如果选择一个星期五,它将显示上午9点到下午6点,这是默认设置。看来皮不起作用了 我在IE或safari的开发工具中没有看到任何错误消息 以下是HTML: &

提前感谢您提供的任何帮助

我有一个表单,上面有一个日期选择器,所以如果你点击输入框,就会弹出一个漂亮的日历。单击日历中的特定日期,然后在输入框中填写日期

接下来,我有一个用于选择时间的输入框。根据一周中的哪一天,时间列表会发生变化。例如,如果选择星期五,则仅显示上午10点到下午1点的选项

我只在firefox中使用它。在IE和Safari上,如果选择一个星期五,它将显示上午9点到下午6点,这是默认设置。看来皮不起作用了

我在IE或safari的开发工具中没有看到任何错误消息

以下是HTML:

<input alt="date" type="text" name="formfield_day" id="formfield_day"  />

<select name="formfield_time" id="formfield_time" class="ri_field">
    <option value="0" selected="selected">Time</option> 

            <option value="9 am" id="time9">9:00 AM</option>
            <option value="10 am" id="time10">10:00 AM</option>
            <option value="11 am" id="time11">11:00 AM</option>
            <option value="12 pm" id="time12">12:00 PM</option>
            <option value="1 pm" id="time1">1:00 PM</option>
            <option value="2 pm" id="time2">2:00 PM</option>
            <option value="3 pm" id="time3">3:00 PM</option>
            <option value="4 pm" id="time4">4:00 PM</option>
            <option value="5 pm" id="time5">5:00 PM</option>
            <option value="6 pm" id="time6">6:00 PM</option>

 </select>
下面是javascript:

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>

<script>
$(document).ready(function(){

    $("#formfield_day").datepicker({ 
     beforeShowDay: nonWorkingDates,
    minDate: 0, 
    maxDate: "+2m" 
    });

  });
</script>


<script>
        $( document ).ready(function() {
            changeTime();
        });

        $('#formfield_day').bind('change', function(event) {
            changeTime();  
        });

        function changeTime() {

    //  var x = $('#formfield_day').val();

        var currentDate = $( "#formfield_day" ).datepicker( "getDate" );


        var weekday = new Array(7);
        weekday[0]=  "Sunday";
        weekday[1] = "Monday";
        weekday[2] = "Tuesday";
        weekday[3] = "Wednesday";
        weekday[4] = "Thursday";
        weekday[5] = "Friday";
        weekday[6] = "Saturday";

        if (currentDate) {
        var dayName = weekday[currentDate.getDay()]; 

        hideAll();

        if (dayName == "Tuesday") {
            hideAll();
                $('#time1').show();
                $('#time2').show();
                $('#time3').show();
                $('#time4').show();
                $('#time5').show();
                $('#time6').show();
            }



            else if (dayName == "Friday") {
            hideAll();
                $('#time9').show();
                $('#time10').show();
                $('#time11').show();
                $('#time12').show();

            }
        }}

        function hideAll() {            
            $('#time1').hide();
            $('#time2').hide();
            $('#time3').hide();
            $('#time4').hide();
            $('#time5').hide();
            $('#time6').hide();
            $('#time7').hide();
            $('#time8').hide();
            $('#time9').hide();
            $('#time10').hide();
            $('#time11').hide();
            $('#time12').hide();
        }

</script>
有什么想法吗?如果能帮我找到这个错误,我将不胜感激

尝试使用

隐藏:

展示:


我相信你所做的是试图在选择中隐藏选项可能不是最好的方法,尝试为一周中的每一天创建一个选择,并相应地显示它们,如:

else if (dayName == "Friday") {
            hideAll(); // hide all the selects
                $('#fridaySelect').show(); // only shows friday select with all its valid options

谢谢您的建议,但不幸的是,这并没有解决问题。@aarr是表单上方的java脚本吗?对于css或jquery hide/show,它应该在表单之前,否则它不会影响它。是的,它在表单之前。我想它与IE和Safarit有关。这是一个非常有趣的想法。不幸的是,我不认为我能做到这一点,因为字段是由数据库生成的,它只需要一个值。我不确定创建7个不同的ID是否有效,但值得研究。试过之后我会给你回复的。谢谢隐藏选项元素并不是所有浏览器都能做到的;只是不能那样做。请看:答案是从2010年开始的,这在更新的浏览器中还没有被修复?修复意味着这是一个不符合标准的bug。然而,如果没有标准定义这种行为,那么每个浏览器都可以自由地实现他们认为正确的行为。同时,在2012年仍然是一个问题:我刚刚尝试将所有的.hide切换到.prop'disabled',true;如果你读过,OP特别指出.prop方法在所有浏览器中都不起作用。它基本上与您已经尝试使用的.hide没有太大区别。对不起,我没有解决方案给你。。。你必须根据每个浏览器一起破解一些东西。
  $('#time1').css("display","block");
else if (dayName == "Friday") {
            hideAll(); // hide all the selects
                $('#fridaySelect').show(); // only shows friday select with all its valid options