当前位置: 首页 > 面试题库 >

必需的属性在Safari浏览器中不起作用

巫马瀚漠
2023-03-14
问题内容

我尝试使用以下代码将必填字段告知必填字段,但在Safari浏览器中不起作用。码:

 <form action="" method="POST">
        <input  required />Your name:
        <br />
        <input type="submit" />
    </form>

上面的代码在firefox中工作。

您可以让我知道JavaScript代码或任何workarround吗? 是javascript新功能

谢谢


问题答案:

Safari(自2017年3月26日起最新版本10.1)不支持此属性,您需要使用JavaScript。

该页面包含一个hacky解决方案,该解决方案应添加所需的功能:

HTML:

<form action="" method="post" id="formID">
    <label>Your name: <input required></label><br>
    <label>Your age: <input required></label><br>
    <input type="submit">
</form>

JavaScript:

var form = document.getElementById('formID'); // form has to have ID: <form id="formID">
form.noValidate = true;
form.addEventListener('submit', function(event) { // listen for form submitting
        if (!event.target.checkValidity()) {
            event.preventDefault(); // dismiss the default functionality
            alert('Please, fill the form'); // error message
        }
    }, false);

您可以用不太丑陋的警告代替警报,例如显示带错误消息的DIV:

document.getElementById('errorMessageDiv').classList.remove("hidden");

在CSS中:

.hidden {
    display: none;
}

并在HTML中:

<div id="errorMessageDiv" class="hidden">Please, fill the form.</div>

这种方法的唯一缺点是它不能处理需要填写的确切输入。它将需要一个循环遍历表单中的所有输入并检查值(更好的是,检查“必需”属性的存在)。

循环看起来像这样:

var elems = form.querySelectorAll("input,textarea,select");
for (var i = 0; i < elems.length; i++) {
    if (elems[i].required && elems[i].value.length === 0) {
        alert('Please, fill the form'); // error message
        break; // show error message only once
    }
}


 类似资料:
  • 我不知道我在这里做错了什么,但我的nav在safari上并不坚持在购物车的顶部,有时它在其他浏览器上也不工作,我真的不明白是怎么回事。我试过定位导航,但没有一个是无效的。希望有人能帮助我理解这里的问题。提前道谢。

  • 我需要描述一个api,在请求体中有一个带有必填字段的对象,其中一个字段是一个对象本身,它有另一组必填字段。 我正在使用开放api v3和swagger编辑器(https://editor.swagger.io/)在我把我的。将yaml文件放到编辑器上,我生成了一个html客户端( 我希望字段1是必需的,字段2是可选的,但事实并非如此。 这是我的。yaml文件

  • 问题内容: 我在使用SWT浏览器组件时遇到了一些麻烦。我正在运行带有Sun的Java SE 1.6的Ubuntu 11.04 AMD64和Eclipse 3.7 我的问题是我的浏览器无法初始化。当我使用SWT.NONE标志实现时,出现错误 然后当我尝试使用SWT.MOZILLA标志时,我得到 我怀疑这部分是因为我正在使用XULRunner2,但是我更喜欢使用WebKit,在Eclipse 3.7中

  • 问题内容: 我花了很多时间试图弄清楚为什么像这样嵌入视频: 一旦将页面加载到FireFox中,便会自动开始播放,但无法在基于Webkit的浏览器中自动播放。这仅在某些随机页面上发生。到目前为止,我找不到原因。我怀疑CMS编辑器创建了一些未封闭的标签或大量JS。 问题答案: 我能得到的最佳解决方案是在 …不是很漂亮,但是可以正常工作。 更新 最近,许多浏览器只能在没有声音的情况下自动播放视频,因此您

  • 问题内容: 在我制作的html页面中,我尝试使用html和css使div可点击。在一些主要的浏览器(Chrome,Firefox,Opera,Safari)以及HTC手机中,该功能都可以完美运行,但是当我尝试在Iphone上对其进行测试时,我发现它根本无法正常工作。复选框本身甚至无法选择。 这是我的代码(除了在Iphone上工作): HTML: CSS: 因此,正如您所看到的,我使用的技术基本上只

  • 问题内容: 我的HTML文件中有这个: 这在CSS文件中: Firefox在Firebug中返回CSS错误。难道我做错了什么? 按照W3C规范的功能,它应该工作。 问题答案: 查看规范中给出的语法: 似乎需要删除属性名称和要使用的单位之间的逗号: 但是,即使您使用正确的语法,也不会起作用。事实证明,截至 3的级别3版本没有已知的实现 2012年 … 2020年。更糟糕的是,截至最新的规范编辑草案仍