简体   繁体   English

JavaScript中的Onclick功能按钮不起作用

[英]Onclick function button in javascript not working

I am a newbie in jquery, I have a stupid question for onclick function. 我是jquery的新手,我对onclick函数有一个愚蠢的问题。 Please help me. 请帮我。 I have a table, when viewer click "Add new" button, I will using jquery add a row to existing table. 我有一个表,当查看器单击“添加新”按钮时,我将使用jquery向现有表中添加一行。 In new row, there are 2 textbox to input data and a button to transfer data from textbox to php file. 在新行中,有2个文本框用于输入数据,一个按钮用于将数据从文本框传输到php文件。 This is my code: html code: 这是我的代码:html代码:

<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />

<TABLE id="dataTable" width="350px" border="1">
    <thead>
        <td>No</td>
        <td>First name</td>
        <td>Last name</td>
    </thead>
<?php 

             include("functions/connect_db.php");
              $no=0;
    $sql="SELECT * FROM `fullnames`";
    $result=mysqli_query($conn,$sql) or die('Could not select Machine'.mysqli_error($conn));
    while ($set=mysqli_fetch_array($result,MYSQLI_ASSOC))  {
                    $no++;
        $first=$set['firstname'];
        $last=$set['lastname'];
 ?>
    <tbody>
     <tr>
     <td><?php echo $no; ?></td>
     <td><?php echo $first; ?></td>
     <td><?php echo $last; ?></td>
 </tr>
  <?php } ?>
    </tbody>
</TABLE>

script: 脚本:

function addRow(tableID) {

        var table = document.getElementById(tableID);

        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);

        var cell1 = row.insertCell(0);
        cell1.innerHTML = rowCount ;


        var cell2 = row.insertCell(1);
        var element1 = document.createElement("input");
        element1.type = "text";
        element1.id="first_input_"+rowCount;
        cell2.appendChild(element1);


        var cell3 = row.insertCell(2);
       var element2 = document.createElement("input");
        element2.type = "text";
        element2.id="last_input_"+rowCount;
        cell3.appendChild(element2);


        var cell4=row.insertCell(3);
        var element3 = document.createElement('input');
        element3.setAttribute('type','button');
        element3.id="#button_"+rowCount;
        element3.className="butt_class";
        element3.value='Save';
        cell4.appendChild(element3);

    }

$(document).ready(function() {
$(".butt_class").click(function()
{
var ID=$(this).attr('id');
var first=$("#first_input_"+ID).val();
var last=$("#last_input_"+ID).val();
if(first.length>0 && last.length>0)
{

$.ajax({
type: "POST",
url: "add_new.php",
data: dataString,
cache: false

});
}

})
})

When I click to Save button in each row, nothing is happen. 当我单击每一行中的“保存”按钮时,什么也没有发生。 I tried by replace all click Save function with alert but there is not change. 我尝试用警报替换所有单击“保存”功能,但没有更改。 Pls help me. 请帮助我。 Thank you in advance! 先感谢您!

click() does not work on dynamically generated elements. click()在动态生成的元素上不起作用。 You can use on(): 您可以使用on():

$(document).ready(function() {
    $("#dataTable").on('click', '.butt_class', function() {
        //...
    });
});

or you can set a function when creating the element: 或者您可以在创建元素时设置一个函数:

element3.onclick= function() {
        //...
    };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM