ตัวอย่างเช่นcodepen
var InputBox = React.createClass({
render: function() {
return (
<input className="mainInput" value='Some something'></input>
)
}
});
ตัวอย่างเช่นcodepen
var InputBox = React.createClass({
render: function() {
return (
<input className="mainInput" value='Some something'></input>
)
}
});
คำตอบ:
Functional component
:const handleFocus = (event) => event.target.select();
const Input = (props) => <input type="text" value="Some something" onFocus={handleFocus} />
ES6 class component
:class Input extends React.Component {
handleFocus = (event) => event.target.select();
render() {
return (
<input type="text" value="Some something" onFocus={this.handleFocus} />
);
}
}
React.createClass
:React.createClass({
handleFocus: function(event) {
event.target.select();
},
render: function() {
return (
<input type="text" value="Some something" onFocus={this.handleFocus} />
);
},
})
<input type='text' value='Some something' onFocus={e => e.target.select()} />
disabled
กล่องข้อความได้อย่างไร jsfiddle.net/69z2wepo/317733
var InputBox = React.createClass({
getInitialState(){
return {
text: ''
};
},
render: function () {
return (
<input
ref="input"
className="mainInput"
placeholder='Text'
value={this.state.text}
onChange={(e)=>{this.setState({text:e.target.value});}}
onFocus={()=>{this.refs.input.select()}}
/>
)
}
});
คุณต้องตั้งค่าอ้างอิงบนอินพุตและเมื่อโฟกัสคุณต้องใช้ select ()
ขอบคุณฉันซาบซึ้ง ฉันทำเช่นนั้น:
var input = self.refs.value.getDOMNode();
input.focus();
input.setSelectionRange(0, input.value.length);
ในกรณีของฉันฉันต้องการเลือกข้อความตั้งแต่เริ่มต้นหลังจากที่อินพุตปรากฏในโมดอล:
componentDidMount: function() {
this.refs.copy.select();
},
<input ref='copy'
var React = require('react');
var Select = React.createClass({
handleFocus: function(event) {
event.target.select()
},
render: function() {
<input type="text" onFocus={this.handleFocus} value={'all of this stuff'} />
}
});
module.exports = Select;
เลือกเนื้อหาทั้งหมดในอินพุตสำหรับคลาสปฏิกิริยาอัตโนมัติ แอตทริบิวต์ onFocus บนแท็กอินพุตจะเรียกใช้ฟังก์ชัน ฟังก์ชัน OnFocus มีพารามิเตอร์ที่เรียกว่าเหตุการณ์ที่สร้างขึ้นโดยอัตโนมัติ เช่นเดียวกับการแสดงด้านบน event.target.select () จะตั้งค่าเนื้อหาทั้งหมดของแท็กอินพุต
อีกวิธีหนึ่งที่ใช้งานได้กับ useRefHook:
const inputEl = useRef(null);
function handleFocus() {
inputEl.current.select();
}
<input
type="number"
value={quantity}
ref={inputEl}
onChange={e => setQuantityHandler(e.target.value)}
onFocus={handleFocus}
/>