亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何給輸入框添加點擊事件?

如何給輸入框添加點擊事件?

慕哥9229398 2023-11-12 22:18:01
我想向條目添加按鈕屬性。例如;我有一個無法編輯的輸入字段:當我按下鍵盤按鈕時,它變得可編輯:當用戶單擊輸入字段而不需要不同的按鈕時,它必須運行不同的功能。例如條碼掃描儀。不可編輯的輸入可以觸發功能嗎?或者可編輯的輸入可以觸發任何功能嗎?我該怎么做呢?在此應用程序中,條形碼事件應由輸入字段觸發,而不是按鈕。
查看完整描述

3 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

正如我在評論中提到的,問題中當前方法的用戶體驗非常值得懷疑:

  • 它缺少一個能指。沒有明確的跡象表明,只有不可編輯字段(與所有其他不可編輯字段相比)一旦單擊就會觸發某些內容

  • 喜歡手動輸入條形碼的用戶需要先單擊鍵盤按鈕以使輸入字段可編輯,然后再次單擊輸入字段以輸入數據。

相反,請考慮通過其 value-help ( ) 操作在單個輸入字段中提供這兩個選項(手動輸入并觸發相機進行掃描) :F4

sap.ui.getCore().attachInit(() => sap.ui.require([

  "sap/ui/core/Fragment"

], async (Fragment) => {

  "use strict";

  

  const control = await Fragment.load({

    definition: `<form:SimpleForm xmlns:form="sap.ui.layout.form"

      xmlns="sap.m"

      editable="true"

      layout="ColumnLayout">

      <Label text="Barcode Number" />

      <Input width="12rem"

        textAlign="Center"

        placeholder="XXXXXXXXX"

        showValueHelp="true"

        valueHelpIconSrc="sap-icon://bar-code"

        valueHelpRequest="alert('Scanner triggered!')"

      />

    </form:SimpleForm>`,

  });

  

  control.placeAt("content");

}));

<script id="sap-ui-bootstrap"

  src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"

  data-sap-ui-libs="sap.ui.core,sap.m,sap.ui.layout"

  data-sap-ui-async="true"

  data-sap-ui-theme="sap_fiori_3"

  data-sap-ui-compatversion="edge"

  data-sap-ui-excludejquerycompat="true"

  data-sap-ui-xx-waitfortheme="init"

></script>

<body id="content" class="sapUiBody"></body>

https://img1.sycdn.imooc.com/6550dec700011e6c02800049.jpg

"sap-icon://bar-code"通過分配給valueHelpIconSrc中的屬性(自 v1.84.0 起可用),可以將值幫助圖標設置為條形碼一sap.m.Input。

這種方法對用戶和開發人員都有利,因為該行為現在與常見的用戶輸入場景一致,提高了熟悉度,并且對于開發人員來說,由于定制較少,它大大降低了維護成本。


如果目標UI5版本低于1.84.0或者條形碼有固定長度,則需要使用該方法擴展該控件addEndIcon。我在另一個答案中對此進行了解釋。這是一個擴展的示例sap.m.MaskInput

https://img1.sycdn.imooc.com/6550ded600019b6f02860052.jpg

請參閱https://embed.plnkr.co/EzlF2tkvalJWvSEn?preview


查看完整回答
反對 回復 2023-11-12
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

如果您的不可編輯input是因為它具有屬性而不可編輯disabled,則您無法將鼠標事件附加到它。(實際上你可以,但它不會觸發鼠標事件。)


如果要觸發單擊事件,可以將事件偵聽器添加到父元素,如div下面的示例中的 a 。


雖然它在沒有它的 Chrome 中也能工作,但您還需要設置pointer-events為noneoninput以使點擊在 Firefox 中傳遞到父元素。


const parentDiv = document.querySelector("div");

const input = document.querySelector("input");


parentDiv.addEventListener("click", (e) => {

  input.removeAttribute("disabled");

  input.focus();

  // or you can open the barcode scanner, etc.

});

input {

  font-size: 2rem;

  padding: 0.5rem 1rem;

}


input[disabled] {

  pointer-events: none;

}

<div>

  <input type="text" value="disabled field" disabled>

</div>

label如果label包含以下內容,它也可以使用input:


<label>Barkod No:

  <input type="text" value="disabled field" disabled>

</label>


查看完整回答
反對 回復 2023-11-12
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

試試這個,用您自己的啟用函數替換 displayDate 函數:

document.getElementById("myBtn").addEventListener("click",?displayDate);

然后調用 CSS 更改:

input[type="text"]:enabled?{

}

查看完整回答
反對 回復 2023-11-12
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號