gpt4 book ai didi

javascript - 使用 javascript 选中的复选框不会 POST

转载 作者:行者123 更新时间:2023-11-30 10:12:24 26 4
gpt4 key购买 nike

我有一个使用 php 生成的包含 27 个复选框的数组。手动选中复选框效果很好。复选框放置在一个 html 表中(包括其他表格日期),(所有在表单标签内)名称 =“chk[]' 和值 ='Index Number' 的数组(0-27)以通常的形式的

当我执行典型的 Java 脚本“全部选中”功能(通过 link_click 或 button_click)时,所有复选框都显示为“已选中”。但是,没有提交任何内容。当我提交时,Print_r 显示'chk'数组确实是空的!

如果我手动设置复选框,则会发布 $_POST('chk') 数组,一切都会按预期进行。

似乎在使用 Javascript 选中复选框时,¡checked' 值不会被发布。

只要使用 Javascript 设置“显示”值,Print_r 就会确认“chk”数组为空!

任何人都可以尝试向我解释为什么复选框的“显示值”没有反射(reflect)或包含在帖子中吗?

该页面在 W3C 上验证 好的,我已经爬过我的代码,但找不到任何可能的错误。平台为 Win7/Wamp Sever/Firefox。 Google/StackOverflow 搜索未显示任何类似的症状/解决方案。

非常感谢任何对此问题有想法的人。

我使用的 javascript CheckAll 函数是 -

function checkall(frm) {
for (var i=0; i<frm.elements.length; i++) {
if (frm.elements[i].name = "chk")
{frm.elements[i].checked = true;}
}
}

27个复选框的数组是普通数组格式,'value'是数组索引。

<tr><td><input type='checkbox' title='' name='chk[]' value='6' ></td> text label </tr>

最佳答案

你的 if 条件有两个错误。

  1. 它甚至不是一个条件,它是一个赋值语句(条件用双等号)
  2. 元素名称应该与 chk[] 而不是 chk
  3. 进行比较

你的 checkall 函数应该是:

function checkall(frm) {
for (var i=0; i<frm.elements.length; i++) {
if (frm.elements[i].name == "chk[]")
frm.elements[i].checked = true;
}
}

现在您可能想知道这与未提交的值到底有什么关系,为什么要检查它们,我可以解释一下。

您当前的代码正在为复选框元素分配一个新名称“chk”(请参阅​​为什么您的条件甚至不是条件的原因 1),并且由于它不是条件,if 语句始终为真,并且代码段将选中的值设置为 true 的代码正在执行,这就是为什么您可以看到选中的元素。现在,当您在 PHP 中请求 $_POST['chk[]'] 时,您什么也得不到,因为元素的名称都被您假设的(如果是“条件”)更改为“chk”。

关于javascript - 使用 javascript 选中的复选框不会 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25778026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com