在按钮内输入;阻止输入点击以点击按钮,但仍然可以输入值

时间:2014-09-14 16:40:56

标签: javascript button input javascript-events

我在按钮内输入了一个。我希望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');
}

但它也可以防止输入任何内容!或至少它不可见。可能是因为我摆弄了输入的默认事件处理。

有没有办法点击输入,没有按钮触发自己的点击事件(即按钮保持独立(即使我已将输入放在内)),输入的工作是否正常?

http://jsfiddle.net/laggingreflex/wmcrhLoz/

1 个答案:

答案 0 :(得分:3)

在这里:http://jsfiddle.net/wmcrhLoz/2/

您只需在输入中使用e.stopPropagation();即可阻止点击事件冒泡到父元素。

您的文字不可见,因为它是白色的。将输入中文本的颜色更改为黑色,这很好。

#input {
    color: #000;
}