开发者

Knowing the last clicked textbox via Javascript

开发者 https://www.devze.com 2023-01-23 10:47 出处:网络
I have a form and a button. I need that when I click on a textfield, and then click this particular button, the textbox which was clicked last will change its value to开发者_StackOverflow中文版 say

I have a form and a button.

I need that when I click on a textfield, and then click this particular button, the textbox which was clicked last will change its value to开发者_StackOverflow中文版 say "BUTTON HAS BEEN CLICKED".

Is there a way via JavaScript how I can know the last textbox which was clicked?

Many thanks in advance.


You need to store a reference to the text box when you click it. The easiest way to do that is to create a global variable for the reference. Then you would update the reference with the textbox's onclick event. Here is an example:

HTML:

<input id="myTextBox" type="text" onclick="updateCurText(this);">
<input type="button" value="click me" onclick="updateText();">

JavaScript:

var currentTextBox = '';

function updateCurText(ele) {
  currentTextBox = ele.id;
}

function updateText() {
  document.getElementById(currentTextBox).value = 'BUTTON HAS BEEN CLICKED';
}

Live example.


jsumners is correct, however I would probably recommend avoiding global variables, and if you're using something like jQuery you have encapsulate a lot of the logic in a single file:

$(function() {
  var lastBox = false, formSelector = "form.myClass";
  // Change events
  $(formSelector + " input[type='text']").click(function() {
    lastBox = this;
  });
  // Button click
  $(formSelector + " button").click(function() {
    if (lastBox)
      $(lastBox).val("BUTTON HAS BEEN CLICKED");
  });
});

live

0

精彩评论

暂无评论...
验证码 换一张
取 消