javascript - 用于验证的 jQueryUI 工具提示

标签 javascript jquery html css jquery-ui

我使用 jQueryUI 工具提示进行验证。

我只想完全做到这一点:当文本框 focusout 或 sumbit 按钮单击空文本框工具提示时出现。我写了这个脚本但是这个脚本有这个问题:

  1. 在文本框中单击或鼠标悬停或鼠标移开时,工具提示不会出现。仅出现在 focusout 或 sumbit 按钮上

  2. 工具提示不会消失,只是在用户点击它时消失。

Fiddler Link

    .errorClass { border:  1px solid red; }
<div id="#tooltip">
<lable ><input id="FName" name="FName" type="text" title="my FName" />
<br/><br/>
    <input id="Post" maxlength="200" name="Post" title="my Post" type="text" value=""><br/><br/>
         <input type="submit" value="sumbit" class="insertBtn" onclick="return ISValidInfo()" />
        <div>
 $(function () {
        $("#tooltip").tooltip().off("mouseover mouseout ");      
        $("#FName").focusout(function () {
            ISValidFname();
        });
        $("#Post").focusout(function () {
            ISValidPost();
        });
        function ISValidFname() {
            if (!$.trim($('#FName').val())) {
                $("#FName").addClass("errorClass")
                $("#FName").tooltip({
                    position: {
                       at: "right top",
                        my: "left bottom",
                    }
                });
                $("#FName").tooltip("open");
            }
            else {
                $("#FName").removeClass("errorClass")
            }
        }
        function ISValidPost() {
            if (!$.trim($('#Post').val())) {
                $("#Post").addClass("errorClass")
                $("#Post").tooltip({
                    position: {
                        at: "right top",
                        my: "left bottom",
                    }
                });
                $("#Post").tooltip("open");
            }
            else {
                $("#Post").removeClass("errorClass")
            }
        }

    function ISValidInfo() {
        ISValidFname();
        ISValidPost();
    }
});

最佳答案

这是一个 FIDDLE这可能会有所帮助。

我把定义好的函数移出了主函数,改了几行。

JS

$(function () {
      $("#tooltip").tooltip();      
      $("#FName").focusout(function () {
                                        ISValidFname();
                                        });
      $("#Post").focusout(function () {
                                        ISValidPost();
                                        });
});

function ISValidFname()
{
 if ( !$.trim($('#FName').val() ) )
    {
     $("#FName").addClass("errorClass")
     $("#FName").tooltip({
                          position: {
                                     my: "left top",
                                     at: "right top"
                                     }
                          });
     $("#FName").tooltip("open");
     } else {
             $("#FName").removeClass("errorClass")
             }
}

function ISValidPost()
{
 if (!$.trim($('#Post').val())) {
            $("#Post").addClass("errorClass")
            $("#Post").tooltip({
                                position: {
                                           my: "left top",
                                           at: "right top"
                                           }
                                });
            $("#Post").tooltip("open");
            } else {
                    $("#Post").removeClass("errorClass")
                    }
}

function ISValidInfo()
{
  ISValidFname();
  ISValidPost();
}

关于javascript - 用于验证的 jQueryUI 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928524/

相关文章:

javascript - 仅来自类的样式属性

javascript - 在 Javascript 中如何知道网页是英语还是非英语?

javascript - 鼠标悬停时会触发哪些 DOM 事件并且可以模拟它们吗?

javascript - 如何在不影响 this 的情况下将参数绑定(bind)到 jquery 回调

html - 使用 CSS 在图像后添加空格和首字下沉

html - 使用 flexbox 垂直居中

javascript - 转换 document.getElementById 以访问 TypeScript 中的文件

javascript - 如何通过简单的 if 条件语句将 div 可见性与输入文本链接起来

javascript - 如何绑定(bind)点击触发器,只绑定(bind)到点击的元素?

javascript - 使用 href onclick 更新 div 而无需重新加载页面?