val('')删除动态表中的所有值

时间:2016-03-11 06:10:03

标签: javascript php jquery

我有一个动态表,其中一列来自数据库,另一列是动态字段。代码如下:

  

PHP代码

<table class="table table-bordered" id="tb" style='width:30%;margin-left:30%;'>
    <tbody>
        <?PHP
            $myquery=" select ROW_NUMBER,Weightage FROM Appraisal_Objectives WHERE Serial_Number like '%1153' ORDER BY Row_Number asc";
            $fetched=sqlsrv_query($conn,$myquery) ; 
            if( $fetched === false ) { die( print_r( sqlsrv_errors(), true ));}
            while($res=sqlsrv_fetch_array($fetched,SQLSRV_FETCH_ASSOC))
            {
                $Weightage=$res['Weightage'];
                $Row_Number=$res['ROW_NUMBER'];
                    echo "<tr><td>".$Weightage."</td>";
                    echo "<td><input type='number' name='Rating[]' id='Rating' class='Rating form-control' onkeypress='return isNumberKey(event)' onChange='calc(this.parentElement.parentElement)' td>";
                    echo "<td style='display:none'><input type='number' name='max_rating[]' id='max_rating' class='max_rating form-control' onChange='calc(this.parentElement.parentElement)' value='$Weightage' td>";
                    echo "<td style='display:none'><input type='number' name='Row_Number[]' id='Row_Number' class='Row_Number form-control' value='$Row_Number' td></tr>";
            }
        ?>
    </tbody>
</table>

评级中输入的数据与在最高评分中输入的数据进行比较,如果 Rating > Max Rating ,则会生成警报。它工作正常,直到这里。如果条件满足,我试图使值为空。 jQuery代码如下:

  

jQuery代码

<Script>
    function isNumberKey(evt){
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
            return false;
        return true;
    }

    window.calc = function (thisRow){
        var one = thisRow.getElementsByTagName('input')[0].value;
        var rating = parseInt(one);
        var two = thisRow.getElementsByTagName('input')[1].value;
        var maxrating = parseInt(two);
        if(rating > maxrating)
        {
            alert('Your rating cannot exceed the maximum rating!');
            $(".Rating").each(function(){
            $(".Rating").val('');
            });
        }
    }
</script>
  

问题:

当满足条件并生成警报时,表中存在的所有行值都将重置,而不是仅重置该特定行。我哪里出错或者我错过了什么?我是jQuery的全新蜜蜂,无论我做了什么,都来自互联网的各种来源。非常感谢任何帮助/建议。干杯! :)

3 个答案:

答案 0 :(得分:1)

$('.Rating') - 使用此课程获取所有ELEMENTS ON PAGE。 你应该指定你的行。

试试这个:

thisRow.getElementsByClassName('Rating')[0].value = '';

更多: 你也可以尝试这个$(thisRow).find('.Rating').val('');

答案 1 :(得分:0)

$('.Rating') - 是一个jquery选择器,它将选择整个文档中的所有Rating类。

使用

thisRow.getElementsById('Rating').value = "";

答案 2 :(得分:0)

你的循环正在使用类选择器'.Rating'。这将选择具有“评级”类的所有元素(即所有行)。

您实际上每行更新一次选择的值(所有行)。有点低效:)

也许尝试更像这样的事情:

echo "<td><input type='number' name='Rating[]' id='Rating-row-$RowNumber' class='Rating form-control' onkeypress='return isNumberKey(event)' onChange='calc("Rating-row-$RowNumber")' td>";

  if (rating > maxrating) {
    $("#"+thisRow).val('')
  }

}