ユーザーが最初の3文字を入力すると、テキストボックスに入力するオートコンプリートオプションのリストをドロップダウンするテキストボックスがあります。オートコンプリートオプションの1つをクリックすると、テキストボックスがクリアされます。ここに、その要素が今のように見えます:要素をJqueryまたはハードコーディングしないテキストボックスをクリアする
<label
className="searchSecondary_userFilterFacet"
hidden={!this.state.isExpanded}
>
<div
className="data-uk-autocomplete"
id="userFilterTypeahead"
ref={elem => (this.userFilterTypeahead = elem)}
>
<input
id="textInput_userSearch"
onKeyUp={this._handleNewUser}
placeholder="Search Users"
type="text"
ref={input => (this.userInput = input)}
/>
</div>
{userModifiers}
</label>
私はReactを使用しています。
componentDidMount() {
let element = ReactDOM.findDOMNode(this.userFilterTypeahead);
//bind selection event for user filter autocompletion uikit
$('#userFilterTypeahead').on(
'selectitem.uk.autocomplete',
function(event, data, acobject) {
$('#textInput_userSearch').val('');
this._editUsersBuffer(data.value, true, true);
}.bind(this)
);
}
まず第一に、私は実際にあるチェックボックスをクリアしているjQueryの行を削除する必要があります。ここにテキストボックスをクリアするために私のコードは、現在のように見えるものです。 this.userInput.value=""
で置き換えると効果がなく、どちらもevent.target.value=""
ではないことがわかりました。次に、Jquery行$('#userFilterTypeahead').on( 'selectitem.uk.autocomplete',...
を削除したいと思いますが、selectitem.uk.autocomplete
イベントが発生したときにテキストをクリアするようトリガーする必要があります。だから、私はこのJqueryを置き換えたいと思うし、単一のテキストボックスをクリアすると複雑さに困惑しています。
'this.userInput.value = '''はうまくいきました。 console.log 'this.userInput'でそれが存在し、' undefined'でないことを確認できますか?インラインリファレンスを行う代わりにrefコールバックを使用する必要があるかもしれません。 –
@ChaseDeAnda私は 'this.userInput'を記録し、' ' –
を呼び出しましたか?あなたのコードは正常に見えます。 –