2014-02-17 3 views
1

У меня проблема с jquery. Мне нужно использовать переменную дату и время в функциональном процессе, но я не понимаю. Пожалуйста, помогите мне. Спасибо.JQuery переменная используется в функции

$(document).ready(function() { 

$('input[name="date"]').change(function(){ 
    var date = $('input[name="date"]').val(); 
    document.getElementById("date").innerHTML = date; 
}); 

$('input[name="time"]').change(function(){ 
    var time = $('input[name="time"]').val(); 
}); 


function process(){ 

} 
}); 
+0

Как называется процесс? –

+0

Любая идея, что будет делать функция «процесс»? – Akhilesh

+1

простым решением является считывание значений внутри метода, например 'function process() { var date = $ ('input [name =" date "]'). Val(); } '- иначе вы можете передать их как параметры –

ответ

1

Надеюсь я правильно понимаю то вы хотите вызвать процесс функции() каждый раз, когда дата/время изменения.

$(document).ready(function() { 

    var date, time; // declare them on top 

    $('input[name="date"]').change(function(){ 
     date = $('input[name="date"]').val(); 
     document.getElementById("date").innerHTML = date; 
     process(); 
    }); 

    $('input[name="time"]').change(function(){ 
     time = $('input[name="time"]').val(); 
     process(); 
    }); 

    function process(){ 
     // use date, time here 
    } 
}); 
+0

Идеально это решение работает точно так, как мне нужно. Спасибо и другим за вашу помощь. – folpy

+3

Это тот же ответ, что и Java_User, на 5 минут раньше. –

4

Попробуйте это:

$(document).ready(function() { 
var date; //declared global 
var time;//declared global 
$('input[name="date"]').change(function(){ 
    date = $('input[name="date"]').val(); 
    document.getElementById("date").innerHTML = date; 
}); 

$('input[name="time"]').change(function(){ 
    time = $('input[name="time"]').val(); 
}); 


function process(){ 
//use date, time var as needed. 
} 
}); 
+0

Я попытался использовать console.log в функциональном процессе, и консоль покажет это: event.returnValue устарел. Вместо этого используйте стандартное событие event.preventDefault(). – folpy

+0

Это общая ошибка, которая будет отображаться в консоли Chrome. Вы можете смело игнорировать их. Это не имеет никакого отношения к вашему коду. Если вы не приняли эти предупреждения, вы можете использовать 'strict mode'. –

+0

Thank Makesh Sapkal добавьте в свой код процесс() и console.log - это функция. Спасибо за вашу быструю помощь. – folpy

1

Я знаю, что уже были даны два ответа, но вот еще один подход, который вы могли бы принять; кэш селекторов для полой даты и времени, а также использовать те, в контексте process():

jQuery(function($) { 

    var $date = $('input[name="date"]'), 
    $time = $('input[name="time"]'); 

    function process() 
    { 
     // use $date.val() and $time.val() 
    } 

    $date.on('change', function() { 
     $('#date').text(date); 
     process(); 
    }); 

    $time.on('change', process); 
}); 

Преимущество заключается в том, что вы не начинаете с неопределенной датой или переменным времени, потому что они уже ссылки на их соответствующие поля на странице.

+0

Спасибо @Jack. Я все еще учился у профессионалов, как ты. –

+0

Аккуратный ответ! Помог мне тоже – Frax

Смежные вопросы