javascript - 如何让这些按钮的运行方式不同?

标签 javascript php

嗯,我有生成按钮。它们的功能是相同的,当我点击它时,它会进行计算。问题是当我单击第二个生成按钮时,它将执行第一个生成按钮的计算,第三个按钮也是如此,依此类推。我想要的是,每个生成按钮只会为自己的工作进行计算。谁能帮我 ?

my generate button

下面是代码:

<tr>
    <td></td>
    <td></td>
    <td style="font-family:centruy-gothic"<strong><font color = "black">
    <?echo $listb['task_name'];?>
    <input type="hidden" name="pc_id[]" value="<? echo $pc_id;?>" >
    <input type="hidden" name="ps_id[]" value="<? echo $ps_id;?>" >
    </font></strong></td>
    <td align="center" style="font-family:century gothic"><input type="text" id ="task_mark" class="input-medium" name="task_mark[]" value="<? echo $listb['task_mark'];?>" onchange="getDate()"/></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="marking" class="input-medium" name="marking[]" value="<? echo $listb['marking'];?>"onchange="getDate()"/></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="destination_marking" class="input-medium" name="destination_marking[]" value="<? echo $listb['destination_marking'];?>"onchange="getDate()"/></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="days" class="input-medium" name="days[]" value="<? echo $listb['days'];?>"onchange="getDate()"/></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="duration" class="input-medium" name="duration[]" value="<? echo $listb['duration'];?>" onchange="calc()"/></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="start_date" class="input-long" name="start_date[]" value="<? echo $listb['start_date'];?>" class="date demo" onchange="getDate()" ></td>
    <td align="center" style="font-family:century gothic"><input type="text" id="end_date" class="input-long" name="end_date[]" value="<? echo $listb['end_date'];?>" class="date demo" onchange="getDate()"></td>
    <td align="center" ><input class="submit-green" id="end_date" type="button" name="end_date[]" value="GENERATE" onclick="getDate()"></td>

    </tr>

这是脚本

<script>
        function getDate()

    {   

        var sd = document.getElementById('start_date').value;
        var dura = document.getElementById('duration').value;
        var m = document.getElementById('marking').value;

        var date = new Date(sd);
        var newdate = new Date (date);
        var durations = parseInt(dura);
        var markings = parseInt(m);

        if (markings === 1)
        {
            newdate.setDate(newdate.getDate());
        }
        else if (markings === 2)
        {
            newdate.setDate(newdate.getDate() + durations);
        }
        else if (markings === 3)
        {
            newdate.setDate((newdate.getDate() + durations) + 1 );
        }

        var dd = newdate.getDate();
        var mm = newdate.getMonth()+1;
        var y = newdate.getFullYear();

        var someFormattedDate = y + '-' + mm +'-' + dd;
        document.getElementById('end_date').value = someFormattedDate;

    }

    </script>

最佳答案

您可以在 html 代码中给出一个参数来修改 onchange="getDate()",如下所示:

<td align="center" style="font-family:century gothic"><input type="text" id ="task_mark" class="input-medium" name="task_mark[]" value="<? echo $listb['task_mark'];?>" onchange="getDate(1)"/></td>
<td align="center" style="font-family:century gothic"><input type="text" id="marking" class="input-medium" name="marking[]" value="<? echo $listb['marking'];?>"onchange="getDate(2)"/></td>
<td align="center" style="font-family:century gothic"><input type="text" id="destination_marking" class="input-medium" name="destination_marking[]" value="<? echo $listb['destination_marking'];?>"onchange="getDate(3)"/></td>
<td align="center" style="font-family:century gothic"><input type="text" id="days" class="input-medium" name="days[]" value="<? echo $listb['days'];?>"onchange="getDate(4)"/></td>
<td align="center" style="font-family:century gothic"><input type="text" id="duration" class="input-medium" name="duration[]" value="<? echo $listb['duration'];?>" onchange="calc()"/></td>
<td align="center" style="font-family:century gothic"><input type="text" id="start_date" class="input-long" name="start_date[]" value="<? echo $listb['start_date'];?>" class="date demo" onchange="getDate(5)" ></td>
<td align="center" style="font-family:century gothic"><input type="text" id="end_date" class="input-long" name="end_date[]" value="<? echo $listb['end_date'];?>" class="date demo" onchange="getDate(6)"></td>
<td align="center" ><input class="submit-green" id="end_date" type="button" name="end_date[]" value="GENERATE" onclick="getDate(7)"></td>

然后,在脚本中您获取参数来执行不同的操作:

<script>
        function getDate(param)
    { 

现在您现在选择了他选中的按钮

关于javascript - 如何让这些按钮的运行方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585633/

相关文章:

php - 最佳实践 : Models and Controllers

php - 为什么 Container::getInstance() 可以返回一个应用类

javascript - 在 React-Redux 项目中收到服务器对 auth 的响应 200 后重定向到页面

javascript - 如何获取 youtube 视频的直接 url

javascript - ./node_modules/@fortawesome/fontawesome-svg-core/styles.css 中的 NPM 运行构建错误

php - 在 Laravel 中保存动态表单字段数据

javascript - 使用 jQuery 创建一个包含目标 div 的 div

javascript - Angularjs变量在 Controller 中获取http不可见

php - Fancybox:使用背景图片

php - 将值从ajax传递到同一页面中的php变量