Javascript 无法从输入中删除字符

Javascript 无法从输入中删除字符,javascript,jquery,forms,reactjs,input,Javascript,Jquery,Forms,Reactjs,Input,我正在调试一个由其他人构建的项目,出现了一个奇怪的问题,其中一个表单框无法删除最后一个字符 代码使用了两个JS文件,一个主要使用React,另一个使用jQuery(我听说这是一个被外包的遗留项目,其他人只是将React放在上面) 现在,因为代码有8000行长,所以对我来说调试起来比较困难(特别是当它们的名字都一样的时候…) 我想知道是否有人有什么建议?我检查了状态,可以看到表单输入的值正在更改(如果单词“hello”在那里,我一直删除到“h”,然后再次删除,“h”仍然保留在框中,但“h”从“va

我正在调试一个由其他人构建的项目,出现了一个奇怪的问题,其中一个表单框无法删除最后一个字符

代码使用了两个JS文件,一个主要使用React,另一个使用jQuery(我听说这是一个被外包的遗留项目,其他人只是将React放在上面)

现在,因为代码有8000行长,所以对我来说调试起来比较困难(特别是当它们的名字都一样的时候…)

我想知道是否有人有什么建议?我检查了状态,可以看到表单输入的值正在更改(如果单词“hello”在那里,我一直删除到“h”,然后再次删除,“h”仍然保留在框中,但“h”从“value”字段和状态中消失)

我怀疑这是jQuery的问题,但我没有看到任何修改表单输入字段值的内容

我注意到的另一件事是,我不能CTRL+Delete或高亮显示all和Delete(它适用于其他框)

下面是输入的React代码片段

render: function() {
    if( this.state.theData.length ) {

        return (
            <div id="to-airport-wrapper" className="wrapper">
              <label htmlFor="to-airport" className="clear-inline-block">
                  {LEXICON.to}
                <span className="sr-only">{LEXICON.cityOrAirport}</span>
                <span id="wcag-to-airport" className="sr-only">{LEXICON.wcagFromToAirportLabel}</span>
                <ToAirportLabel hasError={this.state.error}/>
              </label>
              <div id={"TO_LAW_"+this.props.groupIndex} className="list-airport-wrapper">
                  <input type="text" id="to-airport" className="from-to-airport full-width" name="to-airport"
                         onFocus={this.onFocus} onChange={this.change} placeholder={LEXICON.cityOrAirport}
                         aria-required="true" aria-autocomplete="list" autoComplete="off"
                         data-airportcode={this.state.airportcode} value={this.state.value}/>
                <ul data-type="to-airport" className="list-airport list-unstyled">
                    {
                        this.state.data.map(function(item, i) {
                            return <li key={i} className="list-airport-item" data-shortname={item.shortName} data-airportcode={item.airportCode} tabIndex="-1"><span>{item.name}</span></li>
                        })
                    }
                </ul>
              </div>
            </div>
        );

    } else {

        return (
            <div id="to-airport-wrapper" className="wrapper">
              <label htmlFor="to-airport" className="clear-inline-block">{LEXICON.to}</label>
              <div className="list-airport-wrapper">
                <input type="text" id="to-airport" className="from-to-airport full-width" name="to-airport" onChange={this.change} disabled="true" aria-autocomplete="list" data-airportcode="" placeholder={LEXICON.cityOrAirport} autoComplete="off" value="" />
              </div>
            </div>
        );
    }

}

当我尝试删除表单输入中的最后一个字符时,TO值的console.log会过早消失。

附加代码中有几个输入字段和其他标记。您是否可以删除不相关的字段,只保留与您的问题相关的内容?您的附加代码中有多个输入字段和其他标记。您能否删除不相关的字段,只保留与您的问题相关的内容?
  change: function(event) {

    GLOBAL.ToAirportSetAirportCode('', '');

    console.log("TO VALUE!", event.target.value)

    if( event.target.value ) {
        var jsObjects = this.state.theData;
        var result = jsObjects.filter(function( obj ) {
            var airportName = obj.name.replace('(','\\(').replace(')','\\)');
            var eventTargetValue = event.target.value.replace('(','\\(').replace(')','\\)');
            return airportName.toLowerCase().search( eventTargetValue.toLowerCase() ) !== -1;
        });
        if( result.length > 0 ) {
            $("#TO_LAW_"+this.props.groupIndex+ " ul").show();
            this.setState({
                data: result,
                value:event.target.value
            });
        } else {
            this.setState({
                value:event.target.value
            });
            $("#to-airport + ul").hide();
        }
    } else {
        this.setState({
            data: this.state.theData,
            value: event.target.value
        });
    }

    if( event.target.value == "" || result.length == 0 ) {
        this.reset(event.target.value);
    }
}