【问题标题】:how can i get checkbox name when checked without submit button在没有提交按钮的情况下检查时如何获取复选框名称
【发布时间】:2014-05-29 06:12:50
【问题描述】:

我的代码在那里,

while($row = mysql_fetch_array($query2)) 
{
echo "<tr>";
$ids = $row['list_id'];
echo "<td><input type='checkbox' name='checkbox[]' value=" . $ids . "></td>";
echo "<td>" . $ids . "</td>";
echo "<td>" . $row['list_name'] . "</td>";
echo "<td>" . $row['campaign_id'] . "</td>";
echo "<td>" . $row['list_description'] . "</td>";
echo "<td>" . $row['list_changedate'] . "</td>";
echo "<td>" . $row['list_lastcalldate'] . "</td>";
echo "<td>" . $row['reset_time'] . "</td>";
echo "</tr>";
}

<a href="import.php"><input type="button" value="Import Leads to List"></a>

我想在单击按钮时传递 URL 上选中的复选框值。 像这样,

Http://localhost/test/import.php?id=1234

如果选中多个复选框,我想打印错误消息或警告框,

Please Select any one List ID!

请帮帮我.. 谢谢

【问题讨论】:

  • 使用单选按钮代替复选框,以便用户只能选择一个
  • 应该注意生成的所有行都有一个具有相同id='checkbox'的复选框,这是无效的,尽管您的代码在某些情况下可以运行正常。
  • @EhsanSajjad 那就是那里的 HTML ......他正在使用 php 注入它......
  • 顺便说一句,您使用的是旧的过时 mysql_* 函数 ....它在新的 php 版本中不起作用检查stackoverflow.com/questions/12859942/…

标签: javascript php jquery html checkbox


【解决方案1】:

1) id='checkbox' 更改为有效的class='checkbox' 编辑:添加class='checkbox'

2) 使用 jQuery 函数来检查选中的复选框数量并获取名称:

$('button').click(function(){
    if ($('.checkbox:checked').length !== 1) {
       alert("Please Select any one List ID!");
    } else {
        *var url = window.location.href + '?id=' + $('.checkbox:checked').eq(0).attr('name');*
         **EDIT**:
         var url = window.location.href + '?id=' + $('.checkbox:checked').eq(0).val();
         $('a').attr('href', url);
    }
});

编辑“如果我有多个按钮怎么办”:

将循环中的复选框替换为&lt;a href='index.php?id=&lt;?php echo $ids; ?&gt;'&gt;&lt;button&gt;Import to List&lt;/button&gt;&lt;/a&gt;,就不需要js操作了。

更改复选框:&lt;td&gt;&lt;input type='checkbox' onClick='changeUrl(this)' data-link-id='UniqueIdOfLink',而不是 $('button').click 生成函数:

function changeUrl(e) {
    $('#' + $(e).data('link-id')).attr('href', 'index.php?id=' + $(e).val());
}

【讨论】:

  • 您可能希望将新值实际分配给 href……我认为这就是 OP 想要的......
  • 如果我在一个页面上使用多个按钮?
【解决方案2】:

首先正如其他人所说,使用单选按钮代替复选框,以便用户只能选择一个。由于您还没有发布您的 HTML 代码,我只能为您提供一个粗略的方案: (我用的是原生 JS,但你可以用 jQuery 制作)

PHP+HTML:

<form action="" name="name_of_form">
while($row = mysql_fetch_array($query2)) {
   echo "<tr>";
   $ids = $row['list_id'];
   echo "<td><input type='radio' name='radio[]' onclick='setURL(this.value)' value=".$ids."></td>";
   echo "<td>" . $ids . "</td>";
   echo "<td>" . $row['list_name'] . "</td>";
   echo "<td>" . $row['campaign_id'] . "</td>";
   echo "<td>" . $row['list_description'] . "</td>";
   echo "<td>" . $row['list_changedate'] . "</td>";
   echo "<td>" . $row['list_lastcalldate'] . "</td>";
   echo "<td>" . $row['reset_time'] . "</td>";
   echo "</tr>";
}
?>
<input type="submit" value='Import Leads to List'/>
</form>

javascript:

function setURL(id){
     document.name_of_form.action="Http://localhost/test/import.php?id="+id;
}

请注意,如果您使用表单,则不必手动修改 url,您只需使用 $_POST。

【讨论】:

    【解决方案3】:
    $(document).ready( function () {
    
    $('button').click(function(){
    
    var dea = $("input[type='checkbox']").attr('value');
        window.location.href = 'http://localhost/test/import.php?id='+dea;
    });
    
    });
    

    如果您想一次只选择一个选项,您将使用单选按钮。

    【讨论】:

    • 您可以检查用户是否只选择了一个选项,因此也可以使用复选框。
    • 是的,但在复选框中必须设置条件,而在单选框中,相同的名称将起作用。简短易懂
    猜你喜欢
    • 2022-01-10
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多