【问题标题】:Put error message when value is initial at the end of the new row当值是初始值时在新行的末尾放置错误消息
【发布时间】:2014-06-01 12:00:09
【问题描述】:

我有一个内联创建的表格,即你点击添加行,它打开你可以编辑的行,你可以放置数据,在可编辑的行中你有保存按钮。

当用户单击按钮保存按钮('#btnsubmit')时,我希望如果属性名称是初始的,则在表格行的右侧以红色添加错误消息,我不知道 怎么做,有什么想法吗?

td><input id="btnsubmit" type="submit" value="Create" class="btn btn-default" /></td><td></tr>';

        function addRow() {
            if ($('#btnsubmit').length == 0) {

                jQuery(html).prependTo('#data-table');

                $('#btnsubmit').click(function () {
                $('#checkBox1').attr('disabled', 'true');
                $('input').attr('readonly', true);
                $('input[type=checkbox]').attr('readonly', true);
                });

            }
        }


 var html = '<tr><td>@Html.TextBox("name")</td><td>@Html.CheckBox("checkBox1")</td>input id="btnsubmit" type="submit" value="Create" class="btn btn-default" /></td><td></tr>

更新

$('#btnsubmit').click(function () {

            $(".errmsg").remove();
            $(".err").removeClass('err');

            var row = $(this).parent();
            var nameval = document.getElementById('name');
            var val = nameval.value;
            if (val.trim().length < 1) {
                nameval.addClass('err');
                var err = $("<div class='errmsg'>field empty</div>");
                row.after(err);

在 nameval.addClass('err'); 行中我在检查元素中遇到错误 uncouget 错误:undefined 不是函数,知道吗?

【问题讨论】:

  • 不应该是一个问题..只要你可以用有效的代码做一个小提琴,就可以解决你的问题..从那里我会尽我所能:)
  • @EyalBarta- 请查看jsfiddle.net/shaun1ak/GHw9q/2
  • 好的,现在当点击“addnew-button”按钮时,它会添加新行吗?在什么情况下我会收到错误? '如果属性名称是初始的'是什么意思
  • @EyalBarta- 如果用户没有为 value 字段提供任何值 :) 哪里有值 aaa...

标签: javascript jquery html css


【解决方案1】:

这里或多或少是你想要的..

http://jsfiddle.net/GHw9q/3/

基本上我将您的 addnew-button 点击​​处理程序更新为:

 $('.addnew-button').click(function(){
        $(".errmsg").remove();
        $(".err").removeClass('err');            

        var _row = $(this).parent();
        var _input = _row.children('.data-category');
        if (_input.val().trim().length<1) {
            _input.addClass('err');
            var _err = $("<div class='errmsg'>field empty</div>");
            _row.after(_err);
        }
        else {
            $(this).remove();
            initRowEvents(jQuery(document));
        }

    });

并添加了一些 css.. 看看.. 如果您有任何问题,请告诉我


如果使用变量 html:

var html = '<tr><td>@Html.TextBox("name")</td><td>@Html.CheckBox("checkBox1")</td><td><input id="btnsubmit" type="submit" value="Create" class="btn btn-default" /></td></tr>';

首先请注意,我已经修复了您在变量中遇到的一些错误..

代码应该和上面一样,只是_input变量应该改为:

   var _input = _row.find('input').filter(":first");

** 这取决于您的“姓名”输入字段是 tr..中的第一个输入。

【讨论】:

  • 这个例子实际上检查了两个字段的值,但是如果你只需要检查其中的一个,可以很容易地简化..
  • Eyal 非常感谢,但我只需要检查第一个字段。非常感谢!投票!
  • 没问题,我已经更新了我的答案,只检查 1.. 祝你好运!
  • HI Eyal,我没什么问题。在底部的帖子中,这是与新行相关的字段(在 var html 中),这与 JSfiddle 中的代码有点不同,并且您在代码中引用的内容:_row.children('.data-category');,我应该如何采用它?非常感谢您的支持!
  • 当然,_row.children('.data-category') 只是我找到我们要检查的字段的方式,如果html不同,你只需要找到正确的选择器这将找到该字段.. 如果您想向我展示 html,我可以帮助您使用选择器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多