2014-11-26 1 views
0

Я искал немного сейчас, но не могу найти реальный ответ. Мне интересно, есть ли возможность легко найти каждый флажок на моей странице и проверить, проверен ли он, а затем отправить эти данные на мой контроллер. Лично я думал о простом изменении переменной сеанса в вызове AJAX, но я не вижу, как это возможно (и я ничего не нашел в Интернете). Есть ли у кого больше опыта с этим и могут мне помочь? Предложения приветствуются, даже если это не связано с переменными сеанса.Есть ли способ сохранить переменную сеанса в javascript вызова AJAX или только в методе?

+0

Я бы предпочел определить единый метод для всех флажков и установить переменную JavaScript в true (если пользователь проверял какой-либо). Отправьте сервер этой переменной в Ajax-вызов. И помните, что это говорит только серверу, если флажок установлен на стороне клиента, если они уже были проверены, сервер уже это знает. – SBirthare

ответ

1

Переменные сеанса находятся внутри памяти вашего сервера и иногда идентифицируются файлом cookie ИЛИ, помещая состояние в URL-адрес. они не могут быть изменены javascript на стороне клиента.

насколько ваш вопрос идет простой селектор jquery $('[type="checkbox"]') выполнит эту работу.

var $cs = $('[type="checkbox"]') 
var o = {}; 
for(var i=0; i<=$cs.length; i++){ 
    var $c = $($cs[i]); 
    o[$c.attr('name')||$c.attr('id')] = $cs[i].prop('checked'); 
} 

* Этот код может иметь ошибки я только типизированных если здесь, но вы получите изображение ** убедитесь, что все ваши флажки имеют либо Id или name атрибут

, когда этот код будет работать вам будет получить объект о, как

{ 
name1 : true, 
name2: false 
} 
+0

Могу ли я все же получить имя каждого отдельного флажка? Потому что я должен знать, какие из них проверены, а какие нет – Marijn

+0

ok выглядит логично, спасибо, я дам ему go :) – Marijn

+0

Я предполагаю, что в приложении ASP.net это приведет к массиву строк, но я ' Когда я его программирую, я вижу: P – Marijn

2

да вы можете проверить, если все флажок на странице проверяются присвоить некоторый класс им сказать: «ЦБС»

if($('.cls:checked').length == $('.cls').length) 
{ 
    //on true ecexute your ajax call to send data to controller 
} 

ой, и вы не можете изменить любую переменную сеанса в JavaScript или JQuery

0

это звучит, как вы хотите использовать форму, чтобы представить набор проверяемых/непроверенных коробки. затем, при отправке, отмените запрос AJAX.

HTML:

<form id="target"> 
    <input type="checkbox" name="animal" value="Dog"> I have a dog<br> 
    <input type="checkbox" name="animal" value="Cat"> I have a cat<br> 
    <input type="submit" value="Submit"> 
</form> 

JavaScript:

$("#target").submit(function(event) { 
    // Send your AJAX Request 
}); 

Полезная документация:

.submit() | jQuery Documentation Page

jQuery.ajax | jQuery Documentation Page

0

попробуйте следующие коды:

$('input[type="checkbox"]:checked').each(function() { 

        }); 



var checkedboxes = $('input[type="checkbox"]:checked').length; 
       var totalboxes = $('input[type="checkbox"]').length; 
       console.log(checkedboxes); 
       console.log(totalboxes); 
Смежные вопросы