javascript - 无法使用 CSS-Approach 或 JQuery-Apprach 将必需的验证添加到文本区域

标签 javascript jquery css validation

我已将以下内容添加到我们的 SharePoint 在线网站页面(使用脚本编辑器 Web 部件):-

<div id= "s">
<form >
  <b>Name</b><br>
  <input type="text" id="NameDept" >
  <br>
  <b>Message</b><br>
  <textarea rows="4" cols="50" id="Custommessage" required></textarea>
  <br><br>
  <input type="submit" value="Submit" id= "feedbackbutton">
</form>
</div>

<script>
   $( "#feedbackbutton" ).click(function(e) { 
    e.preventDefault();
   var namedept = document.getElementById("NameDept").value; 
   var Custommessage = document.getElementById("Custommessage").value; 
   var itemType = GetItemTypeForListName("mylist");
        var item = {
            "__metadata": { "type": itemType },
            "Title": namedept ,
            "CommentBoxComment": Custommessage
        };

        $.ajax({
           //code goes here..
            },
            success: function (data) {
                $( "#s" ).replaceWith( "<span style='color:green'> submitted...</span>" );
            },
            error: function (data) {
            }
        });

});

 function GetItemTypeForListName(name) {
        return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
    }
    </script>

现在我正尝试在 <textarea> 上添加必需的验证..但现在不确定为什么要添加 required属性不起作用?

 <textarea rows="4" cols="50" id="Custommessage" required></textarea>

并且用户可以在离开 <textarea> 的同时提交表单空?

最佳答案

那个required属性仅在 <form>. 的上下文中起作用

由于您是通过 JS 执行此操作,因此您需要手动进行验证。试试这个:

    $( "#feedbackbutton" ).click(function(e) { 
            e.preventDefault();
           var namedept = document.getElementById("NameDept").value; 
           var Custommessage = document.getElementById("Custommessage").value; 
           var itemType = GetItemTypeForListName("mylist");
                var item = {
                    "__metadata": { "type": itemType },
                    "Title": namedept ,
                    "CommentBoxComment": Custommessage
                };

           if(Custommessage.trim() === ''){ 
               alert("You must enter a comment to submit feedback");
               return; //<--- This will prevent the ajax call if the Custommessage textarea is blank or only contains whitespace
           }
                $.ajax({
                   //code goes here..
                    },
                    success: function (data) {
                        $( "#s" ).replaceWith( "<span style='color:green'> submitted...</span>" );
                    },
                    error: function (data) {
                    }
                });

        });

关于javascript - 无法使用 CSS-Approach 或 JQuery-Apprach 将必需的验证添加到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53011994/

相关文章:

javascript - 如何在 API 17 下的构建中忽略 @JavascriptInterface 注释 -Android

javascript - 在页面加载时将元素 "Land"放在适当的位置

javascript - jQuery 获取 .text() 但不是 span 中的文本

CSS:我可以通过 margin: 0 0 0 auto 右对齐一个元素吗?

html - 将一个盒子推到视线之外

jquery - 是否可以只包含正在使用的 jQuery Mobile 库的一部分?

javascript - 将数据从表单返回给 Controller

javascript - 如何为事件回调传递特定数组元素

javascript - Angular/UI-Router - 如何在不刷新所有内容的情况下更新 URL?

javascript - Ajax 调用无法从 Web api 服务获取返回消息