有没有办法将会话变量存储在 AJAX 调用的 javascript 中或仅存储在方法中

Is there a way to store a session variable within the javascript of an AJAX call or only in the method?

本文关键字:存储 javascript 方法 调用 变量 会话 有没有 AJAX      更新时间:2023-09-26

我一直在寻找一些,但找不到真正的答案。我想知道的是,是否有可能轻松搜索页面上的每个复选框并检查它是否已选中,然后将此数据发送到我的控制器。就个人而言,我正在考虑简单地修改 AJAX 调用中的会话变量,但我看不出这怎么可能(我在互联网上也没有找到任何东西)。有没有人在这方面有更多经验可以帮助我?即使不妨碍会话变量,也欢迎提出建议。

是的,您可以检查页面上的所有复选框是否都已选中给他们分配一些类,说"CLS"

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

哦,你不能修改JavaScript或jquery中的任何会话变量

会话变量驻留在服务器的内存中,有时只是通过cookie或将状态放在URL中来识别。 它们不能由客户端的JavaScript更改。

就您的问题而言$('[type="checkbox"]')一个简单的jQuery选择器就可以完成这项工作。

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'); 
}

*如果在这里,此代码可能有我刚刚输入的错误,但你会得到图片** 确保所有复选框都具有Idname属性

当此代码运行时,您将获得对象 o 作为

{
 name1 : true,
 name2: false
}

听起来您希望使用表单来提交一组选中/未选中的框。 然后,在提交时,触发您的 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 文档页面

jQuery.ajax | jQuery 文档页面

请尝试以下代码

$('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);