我有正常工作的下jQuery函數:JQuery的日期輸入條件
$(function() {
$('#accmenu').change(function() {
$(".insightsgraphs div").hide();
$(".insightsoptions input").removeClass("green");
$("#newLikes").one('click', function() {
$.ajax({type:'GET', url: 'newLikes.php', data:$('#ChartsForm').serialize(), success:
function(response) {
var json = response.replace(/"/g,'');
json = "[" + json + "]";
json = json.replace(/'/g,'"');
var myData = JSON.parse(json);
var myChart = new JSChart('dailyNewLikes', 'line');
myChart.setDataArray(myData);
myChart.setAxisNameX('');
myChart.setAxisNameY('');
myChart.setAxisValuesColorX('#FFFFFF');
myChart.setSize(470, 235);
myChart.setTitle('Daily New Likes');
myChart.draw();
}});
return false;
});
$("#unlikes").one('click', function() {
$.ajax({type:'GET', url: 'unlikes.php', data:$('#ChartsForm').serialize(), success:
function(response) {
$("#dailyUnlikes").html(response);
}});
return false;
});
});
$("#newLikes").on('click', function(){
$(this).toggleClass('green');
$('#dailyNewLikes').toggle();
return false;
});
$("#unlikes").on('click', function(){
$(this).toggleClass('green');
$('#dailyUnlikes').toggle();
return false;
});
});
,但我想創建一個條件:如果滿足下列兩個日期輸入一個:
var since = $('#dateoptions input[name="since_date"]').val();
var until = $('#dateoptions input[name="until_date"]').val();
是空的我希望收到一個警報,並且.one()
函數只有在條件滿足時纔會執行。例如,當我點擊其中一個沒有輸入日期的按鈕時,例如我想收到一個警告,例如alert("One of the date or both missing")
,然後我選擇日期並再次按下按鈕以執行.one()
函數,如上例所示。我希望我能夠讓自己清楚。我知道我可以使用類似的東西:
if (until == "" || since == "") {
alert("One of the date or both missing")
} else {}
但我的嘗試迄今沒有成功。可能我沒有把它的狀態放在它應該在的地方......還有可能還有一個警報輸入被聚焦,突出顯示或類似的東西?
編輯: 這裏有一個撥弄它: http://jsfiddle.net/DanielaVaduva/ueA7R/6/ 我用別的東西不修改流取代Ajax調用。
這應該工作,你可以在http://jsfiddle.net上提供演示嗎? – undefined 2013-05-13 13:17:18
您是否試過if(until.trim()。length === 0 || since.trim()。length === 0)'? – DaGLiMiOuX 2013-05-13 13:17:46
不是if語句是問題,但是在哪裏放置它是問題,因爲如果我把它放在ajax調用之前,它將在沒有獲取請求的情況下執行'.one()',如果輸入缺失並且第二次按下該按鈕不再發出請求,因爲'.one()'已經被執行過一次。我需要可能像重置'.one()'櫃檯左右? – 2013-05-13 13:21:49