場景一、有一個輸入金額的場景,這個金額需要驗證,驗證說明如下:
不能為空格;
不能為0;
不能為漢字;
不能為其它字符;
不能大於200;
唯一可以的是,只有輸入3~199之間的數字,下面的確定按鈕才會顯示,否則,隱藏這個按鈕。
HTML:
<!--醫生問診金額--> <div class="weui-jiaj-panel"> <div class="weui-jiaj-money-box dialog js_show"> <div class="weui-jiaj-money-box-btn"> </div> <div class="weui-jiaj-money-box-three"> <div class="weui-flex__item"> <a id="showMoney" href="javascript:;" class="weui-btn weui-btn_mini weui-btn_default">其它</a> </div> </div> </div> </div> <!--其它金額--> <div class="weui_dialog_alert" id="showMoneyDialog" style="display: none;"> <div class="weui_mask"></div> <div class="weui_dialog"> <div class="weui_dialog_hd"><strong class="weui_dialog_title">其它金額</strong></div> <div class="weui_dialog_bd"> <div class="weui-jiaj-dialog-panel"> <div class="weui-cell"> <div class="weui-cell__bd"> <input id="dialogPrice" type="text" required class="weui-input" placeholder="¥10" /> </div> </div> </div> </div> <div class="weui_dialog_ft"> <div id="otherPriceBtn" class="weui_btn_dialog primary">確定</div> </div> </div> </div>
JS:
<script>
//設置其它金額
var doctorPrices = [{
"doctorPrice": "5"
}, {
"doctorPrice": "10"
}, {
"doctorPrice": "15"
}, {
"doctorPrice": "20"
}, {
"doctorPrice": "30"
}, {
"doctorPrice": "60"
}];
var userId = $.cookie('doctorId');
$(function() {
selectedPrice();
});
var page = $('.page'); //頂層div
var panel = page.find('weui-jiaj-panel');
function selectedPrice() {
var $titleHtml = '';
for(var a = 0; a < doctorPrices.length; a++) {
var priceName = doctorPrices[a].doctorPrice;
//點周weui_btn_dialog隱藏
$titleHtml += '<button class="price_btn weui-btn weui-btn_mini weui-btn_warn"' + 'name=' + priceName + '>' + priceName + '</button>';
$('.price_btn').css('margin', '5px');
}
$('.weui-jiaj-money-box-btn').append($titleHtml);
//選擇金額
$('.price_btn').click(function() {
var titleValue = $(this).attr('name'); //$(this)表示獲取當前被點擊元素的name值
var data = {
userId: userId,
price: titleValue
};
data = JSON.stringify(data);
$.ajax({
data: {},
dataType: 'json',
type: "post",
url: postDoctorPrice().replace("{userId}", userId).replace("{price}", titleValue),
contentType: 'application/json; charset=utf-8',
success: function(data) {
if(data && data.status == '200') {
weui.topTips('提交成功');
}
},
error: function(data) {
location.href = 'doctor_wode.html';
}
});
});
//其它金額
$('#otherPriceBtn').on('click', function(e) {
var otherPrice = $('#dialogPrice').val();
otherPrice = parseInt(otherPrice);
otherPrice = otherPrice.toString();
console.log("其它金額" + otherPrice);
var data = {
userId: userId,
price: otherPrice
};
data = JSON.stringify(data);
$.ajax({
data: {},
dataType: 'json',
type: "post",
url: postDoctorPrice().replace("{userId}", userId).replace("{price}", otherPrice), //post 時url帶參數
contentType: 'application/json; charset=utf-8',
success: function(data) {
if(data && data.status == '200') {
weui.topTips('設置成功!');
}
},
error: function(data) {
location.href = 'doctor_wode.html';
}
});
});
}
//驗證
$('input').on('blur',function(){
var value = this.value;
var regChinese = new RegExp("[\\u4E00-\\u9FFF]+","g");
//字符串不能為空
if(value.length == 0) {
$('#otherPriceBtn').hide();
weui.topTips('不能為空');
//字符串是否為“空”字符即用戶輸入了空格
}else if(value.replace(/(^s*)|(s*$)/g, "").length ==0){
$('#otherPriceBtn').hide();
weui.topTips('不能為空');
//字符串是否為空或者全部都是空格
}else if(value == null){
$('#otherPriceBtn').hide();
weui.topTips('不能為null');
//字符串是否為漢字
}else if(regChinese.test(value)){
$('#otherPriceBtn').hide();
weui.topTips('不能輸入漢字');
//字符串不能為0
}else if(parseInt(value) == 0){
$('#otherPriceBtn').hide();
weui.topTips('不能為0');
//不能大於200
}else if(parseInt(value) > 200){
$('#otherPriceBtn').hide();
weui.topTips('自定義金額不能大於200元');
//自定義金額只能是數字
}else if(typeof(parseInt(value))){
$('#otherPriceBtn').show();
}
})
</script>


場景二、所有違反規距的都有信息提示,但是“確定”按鈕不隱藏,只是刪除它的click事件,只有符合條件的才可以跳轉
//驗證 $('input').on('blur', function() { var value = this.value; var regChinese = new RegExp("[\\u4E00-\\u9FFF]+", "g"); //漢語 var specialSymbol =/[`~!@#$%^&*_+<>{}\/'[\]]/im; //特殊符號 //字符串不能為空 if(value.length == 0) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不能為空,請重新輸入'); }, 500); //字符串是否為“空”字符即用戶輸入了空格 } else if(value.replace(/(^s*)|(s*$)/g, "").length == 0) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不能為空,請重新輸入'); }, 500); //字符串是否為空或者全部都是空格 } else if(value == null) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不能為空,請重新輸入'); }, 500); //字符串是否為漢字 } else if(regChinese.test(value)) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不能輸入漢字,請重新輸入'); }, 500); //字符串不能為0 } else if(parseInt(value) == 0) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不能為0,請重新輸入'); }, 500); //小於3 } else if(parseInt(value) < 4) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('自定義金額不能小於3,請重新輸入'); }, 500); //不能大於200 } else if(parseInt(value) > 200) { $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('自定義金額不能大於200,請重新輸入'); }, 500); } else if(specialSymbol.test(value)){ //禁止輸入特殊字符 $('#otherPriceBtn').unbind('click'); setTimeout(function() { $('.hide-description').css('display', 'block').text('不可輸入!@#¥%……&*特殊字符!'); }, 500); //自定義金額只能是數字 } else if(typeof(parseInt(value))) { setTimeout(function() { $('.hide-description').css('display', 'block').text('你設置的金額為' + value); }, 500); //其它金額 $('#otherPriceBtn').on('click', function(e) { var otherPrice = $('#dialogPrice').val(); otherPrice = parseInt(otherPrice); otherPrice = otherPrice.toString(); console.log("其它金額" + otherPrice); var data = { userId: userId, price: otherPrice }; data = JSON.stringify(data); $.ajax({ data: {}, dataType: 'json', type: "post", url: postDoctorPrice().replace("{userId}", userId).replace("{price}", otherPrice), //post 時url帶參數 contentType: 'application/json; charset=utf-8', success: function(data) { if(data && data.status == '200') { weui.topTips('設置成功!'); } }, error: function(data) { location.href = 'doctor_wode.html'; } }); }); } })
