Javascript 输入文本输入触发器按钮单击

Javascript 输入文本输入触发器按钮单击,javascript,jquery,Javascript,Jquery,我有这样的表格: <form> Place straightedge/yardstick along width of pothole such that it points at the corners, <a class="showImage">like this</a> <span class="row"> <label class="firstColumn sevente

我有这样的表格:

      <form>
        Place straightedge/yardstick along width of pothole such that it points at the corners, <a class="showImage">like this</a>
        <span class="row">
          <label class="firstColumn seventeenTwentieths">Pothole width (in inches): </label>
          <input type="text" class="secondColumn tenth numberField" id="potholeWidth" />
        </span>
        <span class="rowTight">
          <label class="firstColumn seventeenTwentieths">Interval size (in inches, default 1 inch): </label>
          <input type="text" class="secondColumn tenth numberField" id="intervalSize" value="1" />
        </span>
        <div class="rowTight">
          <label class="firstColumn">Do any of the edges intersect the straightedge/yardstick other than at the corners?</label>
          <div class="secondColumn">
            <span>
              <input type="radio" name="concaveEdges" id="yesConcaveEdges" />
              <label for="yesConcaveEdges">Yes</label>
            </span>
            <br>
            <span>
              <input type="radio" name="concaveEdges" id="noConcaveEdges" checked />
              <label for="noConcaveEdges">No</label>
            </span>
          </div>
        </div>
        <span class="rowTight">
          <label class="firstColumn half">Spreadsheet name: </label>
          <input type="text" class="secondColumn nineTwentieths" id="spreadsheetName"/>
        </span>
        <span class="center row">
          <button class="center" id="clearForm">Clear</button>
          <input type="submit" class="center action" value="Create spreadsheet" />
        </span>
      </form>
如果有什么问题的话,我在活动消费方面做错了什么?
如果需要,可以提供完整的站点。

经过一些毫无希望的瞄准,我想到了一些东西:

如果某个元素“发生”在其外部,则单击该元素不会发生

我想我会把这个事实转化成代码

首先,我测试了
event.clientX
event.clientY
$(“#clearForm”)中。如果用户单击元素的左上角,请单击()。我注意到它与我所期望的
(0,0)
相差甚远。所以,在我的具体情况下,我说

console.log('Coordinates of click event: (' + event.clientX + ', ' + event.clientY + ')');
// if the event actually came from the #clearForm
if ((event.clientX >= 1) && (event.clientY >= 1))
{   
    // clear the form
    clearForm();
}
$('#clearForm')中。单击()
回调主体,它就工作了


注意(对于有此问题的其他人):您的jQuery版本可能不会这样做。在这种情况下,您需要检查
$(this.offset()
,如果
event.clientX<$(this.offset().left&&event.clientY<$(this.offset().top
),则“click”不会发生,您应该像按Enter键一样对待它

经过一番毫无希望的瞄准之后,我想到了一件事:

如果某个元素“发生”在其外部,则单击该元素不会发生

我想我会把这个事实转化成代码

首先,我测试了
event.clientX
event.clientY
$(“#clearForm”)中。如果用户单击元素的左上角,请单击()。我注意到它与我所期望的
(0,0)
相差甚远。所以,在我的具体情况下,我说

console.log('Coordinates of click event: (' + event.clientX + ', ' + event.clientY + ')');
// if the event actually came from the #clearForm
if ((event.clientX >= 1) && (event.clientY >= 1))
{   
    // clear the form
    clearForm();
}
$('#clearForm')中。单击()
回调主体,它就工作了


注意(对于有此问题的其他人):您的jQuery版本可能不会这样做。在这种情况下,您需要检查
$(this.offset()
,如果
event.clientX<$(this.offset().left&&event.clientY<$(this.offset().top
),则“click”不会发生,您应该像按Enter键一样对待它

您链接的站点上没有错误/问题。当我在文本框中输入文本时,它们工作正常。没有发生按钮按下事件。我更新了问题。问题是在任何文本字段中按ENTER键。为什么要使用each循环$('input[type=“text”]”)。键控是否足够?该函数将对页面上具有文本类型的任何输入字段执行。然后你可以在里面运行你的逻辑。我不知道事件处理程序一次应用到多个元素。很好,但它仍然没有解决问题…你链接的站点上没有错误/问题。当我在文本框中输入文本时,它们工作正常。没有发生按钮按下事件。我更新了问题。问题是在任何文本字段中按ENTER键。为什么要使用each循环$('input[type=“text”]”)。键控是否足够?该函数将对页面上具有文本类型的任何输入字段执行。然后你可以在里面运行你的逻辑。我不知道事件处理程序会同时应用于多个元素。很好,但它仍然没有解决问题。。。