我在按钮内输入了一个。我希望uset能够单击输入,输入一些值,然后单击外部按钮。
<button onclick="button()">button
<input onclick="input()"></input>
</button>
然而问题是,默认行为是点击输入也会触发按钮输入,因为显而易见的原因(输入在按钮内)。
所以我试图抑制输入事件的启动和传播
button.onclick = function () {
alert('button was pressed');
}
input.onclick = function (e) {
e.preventDefault();
e.stopPropagation();
return false;
alert('input was pressed');
}
但它也可以防止输入任何内容!或至少它不可见。可能是因为我摆弄了输入的默认事件处理。
有没有办法点击输入,没有按钮触发自己的点击事件(即按钮保持独立(即使我已将输入放在内)),输入的工作是否正常?
答案 0 :(得分:3)
在这里:http://jsfiddle.net/wmcrhLoz/2/
您只需在输入中使用e.stopPropagation();
即可阻止点击事件冒泡到父元素。
您的文字不可见,因为它是白色的。将输入中文本的颜色更改为黑色,这很好。
#input {
color: #000;
}