想知道这是否可行,目前正在使用它单击“清除”按钮,然后清除UPIN;

Protected Sub clear(ByVal Sender As Object, ByVal e As System.EventArgs)
UPIN.Text=String.Empty
End Sub


但是我希望它清除焦点在哪个文本框中!例如;

focusedstring.Text=String.Empty


再次,没有大量JS或其他东西,这有可能吗?

最佳答案

您应该在客户端执行此操作(编辑:根据MightyLampshade的建议,您可以在1000个示例here中找到),您不需要为此往返服务器。假设您有一个清除按钮:

$("#clear").click(function() {
    $(".can-be-cleared").val("");
});


请注意,这将清除类can-be-cleared的所有元素(我假设您可能不希望清除每个输入,而是清除特定的输入集,如果不是这种情况,只需将其替换为input[type=text])。 id clear

如果每个“清除”按钮都必须与一个特定的文本框绑定在一起,则必须重复它们(因为单击按钮文本框时将不再聚焦)。或者,您可能还记得上一个聚焦的文本框。让我们看看两者:

<input type="text" id="textbox1"/>
<button class="clear-button" data-textbox="textbox1">clear</button>


为此,JavaScript是:

$(".clear-button").click(function() {
    $("#"+$(this).data("textbox")).val("");
});


更简单的选择(如果您没有任何其他特殊要求,我更喜欢这样做)可能是跟踪上一个重点突出的文本框:

var lastFocused = undefined;

$("input[type=text]").focus(function () {
    lastFocused = $(this);
});

$("#clear-field").click(function () {
    if (lastFocused !== undefined) {
        lastFocused.val("");
    }
});


当然,不要忘记将$("#clear-field")与您用于清除按钮的正确ID匹配,在这种情况下,我假设:

<button id="clear-field">Clear</button>


无论如何,如果确实需要服务器端处理(出于任何其他原因),则在TextBox参数中生成的事件sender

Dim textbox As TextBox = DirectCast(sender, TextBox)
textbox.Text = String.Empty

10-04 17:05