Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当输入类型为“时”;“图像”;,onclick操作是通过在另一个输入字段中按enter键触发的_Javascript_Jquery_Html - Fatal编程技术网

Javascript 当输入类型为“时”;“图像”;,onclick操作是通过在另一个输入字段中按enter键触发的

Javascript 当输入类型为“时”;“图像”;,onclick操作是通过在另一个输入字段中按enter键触发的,javascript,jquery,html,Javascript,Jquery,Html,在我的代码中,我创建了一个JavaScript函数,它将从表中删除当前行。然后在HTML中,我将该函数放入一个“input”元素,该元素将在“onclick”操作中触发该函数。如果我输入type=“button”,一切都正常,但是如果我输入type=“image”,正如您在下面看到的,即使使用“return false;”,每当我在同一行的任何输入字段中按enter键时,它都会触发delete函数 我不知道为什么 function deleteRow(r) { var rowLength

在我的代码中,我创建了一个JavaScript函数,它将从表中删除当前行。然后在HTML中,我将该函数放入一个“input”元素,该元素将在“onclick”操作中触发该函数。如果我输入type=“button”,一切都正常,但是如果我输入type=“image”,正如您在下面看到的,即使使用“return false;”,每当我在同一行的任何输入字段中按enter键时,它都会触发delete函数

我不知道为什么

 function deleteRow(r)
{   
var rowLength= document.getElementById("newOrder").rows.length; //get how many rows are in this table

if (rowLength == 2)  //if there are only two rows (including header), then don't allow to delete a row
{
    alert ("At least one row is needed to create an order.");
    return;
} else  //if row number is greater than 2, then delete a row is allowed
{
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("newOrder").deleteRow(i);
}
下面是HTML代码

        <tr>
        <td class="item"><input type="image" onclick="deleteRow(this); return false;" src="img/delete.png" height="20" width="20" alt="delete"><input type="text" class="biginput, item"  ></td>
        <td class="detail"><input class="detail" type="number" ></td>
        <td class="detail"><input class="detail" type="number" ></td>
        </tr>

使用以下方法:

在帖子中标记jquery时使用jquery:

$('#image').click(function(event) {
    event.preventDefault(); // yaa!
alert("delete");
});

单独的建议-我个人认为没有理由再使用
input type=“image”
,因为您可以使用更新的(更语义的)
,任何HTML都可以放在
任何内容中-请参阅。按钮特别适用于发生操作(如deleteRow)时。再见,谢谢你的建议。我试着使用一个按钮,但因为图像分辨率是20 x 20,看起来按钮框本身比图像大很多,我发现没有办法调整按钮的大小。有什么建议吗?按钮是一个通用的HTML元素,可以完全设置样式,其中的标记可以完全设置样式。也就是说,虽然我可能会玩弄它来做我想做的事情,但它可能不适合你的情况,我也不能在这里写一整篇文章。阅读我在早期评论中提到的文章,并考虑“代码> <代码>。并不是每件事都适合每一种情况,但如果你拓宽知识面,你就能做出更好、更明智的决定。正是在这种情况下,我(我自己)不再使用
input type=“image”
+1来提及
return false
.preventDefault()
——我找到了一篇关于两者区别的好文章,但(遗憾的是)现在找不到。
function deleteRow(instance) {
    alert("delete");
    return false;
}
$('#image').click(function(event) {
    event.preventDefault(); // yaa!
alert("delete");
});