js 监测from表单中的input和select,时时监测,没有输入或选择信息报错,不允许提交数据
Posted 韦书文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 监测from表单中的input和select,时时监测,没有输入或选择信息报错,不允许提交数据相关的知识,希望对你有一定的参考价值。
1.html 代码为 在input和select同级元素中添加 .error的标签,用来存放报错信息
<form action="" method="post" enctype="multipart/form-data" id="sound-dialog-form"> <div class="form-group"> <label for="name">名字</label> <input type="text" class="form-control" id="name" value="" name="soundname"> <span id="SoundName-Error" class="error"></span> </div> <div class="form-group"> <label for="sound">音频</label> <select name="sound" id="sound"> <option value="" disabled hidden selected style="font-weight:bold">音频选择.....</option> <volist name="play_volume" id="play_volume"> <option value="{$play_volume.name}">{$play_volume.name}</option> </volist> </select> <span id="PlayVolume-Error" class="error"></span> </div> </form>
2.定义css 样式 .form-group {position:relative;} .error的定义可参考
.error { position: absolute; top: 50px; left: 73px; color: #fff; background: #e00a0a; font-weight: bold; border: 0; border-radius: 5px; }
3.js部分
// 正则表达式 var reg1 = /^.{1,}$/; //名称满足条件 // alert(window.innerWidth+‘ssssssssss‘+window.innerHeight); // alert(window.innerHeight); // 设置音频信息 function SetAudio($id,name,sound,length,note,volume){ var tan = layer.open({ type:1, title: ‘编辑声音‘, area:[‘370px‘,‘450px‘], offset: ‘50px‘, anim: 1, content: $("#sound-dialog"), btn:[‘保存‘,‘播放‘,‘删除‘,‘取消‘], btn1:function(index){ // 获取标签的值 var name = $(‘#name‘).val(); // var length = $(‘#length‘).val(); var sound = $(‘#sound‘).val(); var note = $(‘#note‘).val(); var volumeAmount = $("#volumeAmount").text( $( "#volumeSlider" ).slider( "value" )).text(); // 声音名称的正则 if(!reg1.test(name)){var SoundNameError=$("#SoundName-Error").text("请输入正确的名称");$("#SoundName-Error").css({"padding": "2px 6px 2px 6px"});ErrorName("name",SoundNameError);} if(sound===null||sound===""||sound===undefined){var PlayVolumError=$("#PlayVolume-Error").text("请选择音频");$("#PlayVolume-Error").css({"padding": "2px 6px 2px 6px"});ErrorVolume("sound",PlayVolumError);return; } if(!SoundNameError){ $.ajax({ "url": "{:U(‘Sound/EditVolume‘)}", "type": "post", "data": { "action": "EditSound", "id":$id, "name":name, // "length":length, "volumeSlider":volumeAmount, "note":note, "sound":sound }, success:function(data){ layer.close(index); layer.msg("修改成功!"); $("#navside").load("/Sound/index #navside"); }, error:function (data){ layer.msg("设置音频信息错误"); } }) } }, btn2:function(index){ // 音量 var play_slider_val = Number($("#volumeAmount").text($("#volumeSlider").slider("value")).text()); // 音频 var play_audio_frequency = $("#sound").val(); if(play_audio_frequency==null){ layer.msg("请选择音频"); }else{ // 获取音频 var audios= new ROSLIB.Message({ data:play_audio_frequency }); volume_play.publish(audios); //调试音量 var volumes= new ROSLIB.Message({ data:play_slider_val }); volume_voice.publish(volumes); console.log(play_slider_val); console.log(play_audio_frequency); } return false; }, btn3:function(index){ $.ajax({ "url": "{:U(‘Sound/EditVolume‘)}", "type": "post", "data": { "action": "DeleteSound", "id":$id }, success:function(data){ layer.close(index); layer.msg("删除成功!"); $("#navside").load("/Sound/index #navside"); }, error:function (data){ layer.msg("删除音频有误!"); } }) // return false; }, end:function(){ // layer.msg("已取消"); } }); if($id!==undefined){ // $( "#amount" ).val( $( "#slider-range-max" ).slider( "value" ) ); LabelElement($id,name,sound,note,length,volume); }else{ LabelElement(); $(".layui-layer-btn2").hide(); } } // slider滑动获取音量的大小 $( "#volumeSlider" ).slider({ min: 0, max: 100, value: 100, slide: function( event, ui ) { $( "#volumeAmount" ).text( ui.value ); $( "#sound-volume" ).val( ui.value ); var slider_display=$( "#volumeAmount" ).text(); var slider_input= $("#VolumeValue").val(slider_display); var slider_val=Number(slider_input.val());//音量 var audio_frequency = $("#sound").val();//声音 if(audio_frequency==null){ layer.msg("请选择音频"); }else{ // 音频 var number= new ROSLIB.Message({ data:audio_frequency }); volume_play.publish(number); //音量 var number1= new ROSLIB.Message({ data:slider_val }); volume_voice.publish(number1); console.log(audio_frequency); console.log(slider_val); } } }); // 获取元素的值 function LabelElement(id,name,sound,note,length,volume){ if(id===undefined&&name===undefined&&sound===undefined&&volume===undefined){ id="";name="";sound="";note="";length="";volume=100; } $("#name").val(name); $("#sound").val(sound); $("#sound").prop(‘required‘,false); $("#note").val(note); // // $(‘#sound-dialog‘).find(‘#length‘).val(length); $("#volumeSlider").slider(‘value‘,volume); $("#volumeAmount").text( $( "#volumeSlider" ).slider( "value" )).text(); // } // 隐藏错误触发方式 function ErrorName(value,error){ var ErrTxt=error.text();//获取错误信息 // 按下触发事件 $("#"+value).keyup(function(){ var ValueText=$("#"+value).val();//随时监测input输入的值 ErrorMode(value,ValueText,error,ErrTxt); }); } // 隐藏错误触发方式 function ErrorVolume(value,error){ var ErrTxt=error.text();//获取错误信息 // 点击触发事件 $("#"+value).click(function(){ var ValueText=$("#"+value).val();//随时监测input输入的值 ErrorMode(value,ValueText,error,ErrTxt); }); } // 错误信息处理 function ErrorMode(value,texts,error,errtxt){ if(texts!==""&&texts!==null&&texts!==undefined){ error.text("");//清除错误信息 $("#"+value).siblings(".error").css({"padding":"0px"}); }else{ // 添加错误信息 $("#"+value).siblings(".error").text(errtxt); $("#"+value).siblings(".error").css({"padding":"2px 6px 2px 6px"}); } }
效果预览 链接: https://pan.baidu.com/s/1FkZ1DlqG_E_GFLw06HXtkQ 密码: irdi
以上是关于js 监测from表单中的input和select,时时监测,没有输入或选择信息报错,不允许提交数据的主要内容,如果未能解决你的问题,请参考以下文章
React Antd的验证- antd form表单一行多个组件并对其校验(一个FormItem中多个Input校验)
第二天 第二弹 iframe内嵌框架 和from表单和input的运用