如何在更改事件

时间:2015-11-05 15:42:37

标签: javascript jquery html asp.net-mvc checkbox

我有一个动态的商品表,每个商品旁边都有复选框。当用户选择一个复选框时,我想抓住"名称"表中的项目并将其添加到文本框中。见图:

enter image description here

我试图实现这一目标的方法是添加一个"更改"事件到每个复选框并填充它"数据名称"元素与文本的名称。



<tbody>
            @foreach (var item in Model.Items)
            {
                <tr>
                    <td><input type="checkbox" name="selectBox" data-name="@item.Name" /></td>
&#13;
&#13;
&#13;

正如您所看到的,我使用项目名称填充数据名称作为直接拉动它的方式(我不知道该怎么做)。现在在javascript / jquery中我将事件绑定到每个复选框并尝试使用以下代码获取数据元素:

&#13;
&#13;
$('input[name=selectBox]').change(function (item) {
    var text = $(item).attr('data-name');
});
&#13;
&#13;
&#13;

当代码运行时,事件将针对所有复选框触发,但是&#34; text&#34;当我希望它是名称数据时,它是未定义的。

寻找我的方法的答案和/或更好的方法,包括一起跳过数据元素并直接获取名称值。谢谢你的期待。

2 个答案:

答案 0 :(得分:3)

在您的情况下base::as.Date.numeric function (x, origin, ...) { if (missing(origin)) stop("'origin' must be supplied") as.Date(origin, ...) + x } <bytecode: 0x17190e78> <environment: namespace:base> zoo::as.Date.numeric function (x, origin, ...) { if (missing(origin)) origin <- "1970-01-01" if (identical(origin, "0000-00-00")) origin <- as.Date("0000-01-01", ...) - 1 as.Date(origin, ...) + x } <environment: namespace:zoo> 事件对象不是item,您可以通过事件属性获取元素currentTarget

DomElement

或使用$('input[name=selectBox]').change(function (item) { var text = $(item.currentTarget).attr('data-name'); }); ,因为this引用了当前元素,它与前面的示例相同但更短

this

答案 1 :(得分:3)

试试这个:

<?php
$von = $_GET['datumvon'];
$bis = $_GET['datumbis'];
$frei =0;

$DB_server = "localhost";
$DB_name = "dbterminkalenderha";
$DB_user = "root";
$DB_password = "root";

   $server = mysqli_connect($DB_server, $DB_user, $DB_password);
   $connection = mysqli_select_db($server, $DB_name);


    $myquery = $server->prepare("SELECT T_Datum,T_Frei FROM t_terminslots WHERE (T_Datum Between ? AND ?) AND (T_Frei = ?); ");
    $myquery->bind_param("ssi",$von,$bis,$frei);
    $myquery ->execute();


    //$query = mysqli_($myquery);

    if ( ! $myquery ) {
        echo mysqli_error();
        die;
    }    
    $data = array();    

    for ($x = 0; $x < mysql_num_rows($myquery); $x++) {
        $data[] = mysqli_fetch_assoc($myquery);
    }

    echo json_encode($data);     

mysqli_close($server);
?>

var text = $(this).data('name'); 函数的第一个参数是change,而不是元素本身。此外,jQuery会自动将函数范围(event)设置为要更改的元素。

请参阅Documentation