当前位置: 首页 > 知识库问答 >
问题:

使用React JS作为下拉列表的OnChange事件

黎同
2023-03-14
var MySelect = React.createClass({
     change: function(){
         return document.querySelector('#lang').value;
     },
     render: function(){
        return(
           <div>
               <select id="lang">
                  <option value="select" onChange={this.change}>Select</option>
                  <option value="Java" onChange={this.change}>Java</option>
                  <option value="C++" onChange={this.change}>C++</option>
               </select>
               <p></p>
               <p value={this.change}></p>
           </div>
        );
     }
});

React.render(<MySelect />, document.body);

onChange事件不起作用。

共有3个答案

濮阳靖
2023-03-14
import React, { PureComponent, Fragment } from 'react';
import ReactDOM from 'react-dom';

class Select extends PureComponent {
  state = {
    options: [
      {
        name: 'Select…',
        value: null,
      },
      {
        name: 'A',
        value: 'a',
      },
      {
        name: 'B',
        value: 'b',
      },
      {
        name: 'C',
        value: 'c',
      },
    ],
    value: '?',
  };

  handleChange = (event) => {
    this.setState({ value: event.target.value });
  };

  render() {
    const { options, value } = this.state;

    return (
      <Fragment>
        <select onChange={this.handleChange} value={value}>
          {options.map(item => (
            <option key={item.value} value={item.value}>
              {item.name}
            </option>
          ))}
        </select>
        <h1>Favorite letter: {value}</h1>
      </Fragment>
    );
  }
}

ReactDOM.render(<Select />, window.document.body);
章玮
2023-03-14

反应钩(16.8):

const Dropdown = ({
  options
}) => {
  const [selectedOption, setSelectedOption] = useState(options[0].value);
  return (
      <select
        value={selectedOption}
        onChange={e => setSelectedOption(e.target.value)}>
        {options.map(o => (
          <option key={o.value} value={o.value}>{o.label}</option>
        ))}
      </select>
  );
};
濮阳振
2023-03-14

更改事件在

必须将选定值存储为状态,并在值更改时更新状态。更新状态将触发组件的重新加载。

var MySelect = React.createClass({
     getInitialState: function() {
         return {
             value: 'select'
         }
     },
     change: function(event){
         this.setState({value: event.target.value});
     },
     render: function(){
        return(
           <div>
               <select id="lang" onChange={this.change} value={this.state.value}>
                  <option value="select">Select</option>
                  <option value="Java">Java</option>
                  <option value="C++">C++</option>
               </select>
               <p></p>
               <p>{this.state.value}</p>
           </div>
        );
     }
});

React.render(<MySelect />, document.body);

还要注意

详细了解事件处理、状态和窗体控件:

  • http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html
  • http://facebook.github.io/react/docs/forms.html

 类似资料:
  • 问题内容: 我的MVC视图中的代码为黑色,如下所示: 我想设置ViewData [“ selected”]的值,以便可以将其发送到所需的操作。有人可以建议我该怎么做吗? 谢谢! 问题答案: 为什么不使用表单,而不在下拉菜单中使用jQuery onChange事件?

  • 问题内容: 该事件不起作用。 问题答案: 更改事件是在元素而不是元素上触发的。但是,这不是唯一的问题。您定义函数的方式不会导致组件的重新渲染。似乎您可能尚未完全了解React的概念,所以“在React中思考”可能会有所帮助。 您必须将所选值存储为状态,并在值更改时更新状态。更新状态将触发组件的重新呈现。 另请注意,元素没有属性。反应/ JSX简单地复制了著名的HTML语法,它不引入自定义属性(有例

  • 我的表单中有一个下拉列表,用于过滤数据。我使用ajaxonchange函数根据所选列表过滤数据。 我的下拉列表如下所示: 这是我想要显示onchange数据的div: 当有onchange on下拉列表时,它将通过以下ajax功能: 然后转到url检查是否有来自ajax的帖子: 因此,过滤完成后,

  • 问题内容: 快速创建下拉菜单的库是什么?我是Xcode和Swift语言的新手,所以有人可以指导我如何快速实现下拉列表吗? 问题答案: “下拉菜单”是一个网络控件/术语。在iOS中,我们没有这些。您可能会更好看。查看本教程,以了解PopoverControllers http://www.raywenderlich.com/29472/ipad-for-iphone-developers-101-i

  • 我在Servlet中使用SortedMap来填充JSP中的下拉列表值,我有以下代码 在JSP中 我正在使用一个 JSP 页进行插入和更新。当我编辑页面时,如何将所选值设置为下拉列表,其中所选值将来自数据库。

  • 假设用户从下拉列表中选择option2,那么f1()将在下拉列表的值发生更改时执行,我正在监听更改事件。现在,用户再次单击下拉列表并选择option2,在这种情况下,下拉列表的值不变,因此f1不会执行。现在,我希望每次用户从下拉列表中选择某个值时都执行f1,无论值是否更改。