javascript - Jquery 验证 div

标签 javascript jquery html validation

我设置了一个包含一堆 contenteditbale div 的页面,以及一些 js/ajax 功能,以便用户可以进行内联编辑。

<div class="inlineEdit" contenteditable="true"></div>

JS 是这样的:

$(document).ready(function(){
$('div.inline-edit').blur(function()
{

    var pathArray = window.location.pathname.split( '/' );
    var segment_3 = pathArray[3];
    var editableObj = $(this);
    var token_input = $('input.token');
    var save_data ={};
    var token_name = token_input.attr('name');

    save_data['field'] = editableObj.attr('id');
    save_data['id'] = editableObj.closest('.inline-id').attr('id');
    save_data['editedValue'] = editableObj.text();

    $.ajax({
        url: segment_3+'/update',
        type: 'POST',
        data:save_data,
        success: function(){
        //on success functionality

        }        
   });
});

});

这部分工作完美,所有正确的字段都会使用正确的信息进行更新。我需要的只是在信息到达 ajax 之前验证该信息

我知道JQuery Validation不过我很确定它不适用于 div。

有解决方案吗?还是我被卡住了/必须更改 div?

最佳答案

您可以创建一个临时输入框并通过它传递值以检查有效性。我编写了一个函数来使用 HTML5 验证来检查有效性。

  function validityChecker(value, type) {
      type = type?type:'text'
      $('body').append('<input id="checkValidity" type="'+type+'" style="display:none;">');
      $('#checkValidity').val(value)
      validity = $('#checkValidity').val()?$('#checkValidity').val().length>0:false && $('#checkValidity')[0].checkValidity()
      $('#checkValidity').remove();
      return validity;
  }

在您的情况下,请像这样使用:

if(validityChecker(save_data['editedValue'], 'number')){ // if you want to check for number
    $.ajax({
        url: segment_3+'/update',
        type: 'POST',
        data:save_data,
        success: function(){
        //on success functionality
        }        
    })
}

演示:

function validityChecker(value, type) {
  type = type?type:'text'
  $('body').append('<input id="checkValidity" type="'+type+'" style="display:none;">');
  $('#checkValidity').val(value)
  validity = $('#checkValidity').val()?$('#checkValidity').val().length>0:false && $('#checkValidity')[0].checkValidity()
  $('#checkValidity').remove();
  return validity;
}

save_data = 'This is not a number';
alert(validityChecker(save_data, 'number')) // false
alert(validityChecker(save_data, 'text')) // true
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - Jquery 验证 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488937/

相关文章:

php - 问题,用其中的脚本回显 HTML,需要第三个 ' "

jquery - 如何从 jquery datepicker 获取选定的日/月和年

javascript - 在 Facebook/Twitter 上分享并确认已分享

javascript - 拖放时更改隐藏名称

ios - 如何隐藏 PhoneGap 文本区域中的键盘完成按钮?

html - 禁用单个样式的 CSS 转换?

javascript - 如何限制复选框在某些条件后进行选择

javascript - 使用 Rollup.js 时如何在 Jest 测试中正确模拟函数

python - beautifulsoup 不返回跨度结果

javascript - 如何通过在 JS 中对消息进行分组来推送到子数组?