输入中的模态未在Firefox或Safari中触发

时间:2014-03-31 18:27:33

标签: javascript jquery html twitter-bootstrap modal-dialog

当我在Firefox或Safari上点击它时,我的模态不会被触发。

我的HTML是:

<div class="DisabledCart">
    <input type="submit" id="StandardProductAddToCart" name="Add to Cart" value="ADD TO CART" alt="Add to Cart" style="cursor:not-allowed;" disabled="disabled"/>
</div>

我的模式是:

<div class="modal fade" id="NotAvailable" tabindex="-1" role="dialog" aria-labelledby="NotAvailableLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <img class="closeModal" data-dismiss="modal" aria-hidden="true" src="http://cdnll.amleo.com/images/art/x_white.png" height="20" width="20" alt="X" />
        <h4 class="modal-title" id="myModalLabel">Not Available</h4>
      </div>
      <div class="modal-body">
        <div class="alert alert-danger"><strong>Not available for online orders. Please call 1-800-543-8995 to order; thank you.</strong></div>
      </div>
        </form>
      </div>
    </div>
  </div>
</div>

我的JS是:

$(".DisabledCart").click(function (evt) {
     $('#NotAvailable').modal('show');
});

我尝试过使用数据切换,我尝试在输入中使用该类。什么都行不通。必须禁用输入。

1 个答案:

答案 0 :(得分:1)

我不能直接为Safari说话,但快速搜索看起来当禁用元素上发生点击事件时,Firefox不会将事件传播到DOM树上(参见Event on a disabled input)。

看起来你的模态中的信息可能以不同的格式表现得最好。尝试使用Bootstrap's popovers或只是在禁用按钮附近拨打号码。

如果您仍想使用模式,则必须遵循上面链接主题中的建议才能跨浏览器兼容。您可以在此处找到示例:JSFiddle

以下是执行此“hack”所需的HTML代码段:

<span style="position:relative;">
    <input type="text" disabled />
    <div style="position:absolute; left:0; right:0; top:0; bottom:0; cursor: pointer;"></div>
</span>