文本区域中的单词自动完成(单词建议)

时间:2019-01-25 04:59:03

标签: javascript php jquery mysql

在我的代码中,我使用一个文本区域提供单词建议(自动完成),并且该文本区域从MySQL数据库表中获取单词建议的值。但是,只要我在textarea中键入第二个单词,此textarea只会在textarea中提供第一个单词建议,因此它不会提供任何建议,因此,如何修复此代码的代码会在textarea中的所有单词中提供建议。

class ViewController: UIViewController, UITextViewDelegate {

    var didTab:Bool = false    

    override func viewDidLoad() {
        super.viewDidLoad()

        textView = UITextView(frame: CGRect(x:24,y: 100,width: 340,height: 290))
        textView.textColor = UIColor.black
        textView.backgroundColor = UIColor(red: 0.00, green: 0.00, blue: 0.00, alpha: 0.00)
        textView.text = "\tSomeText"
        view.addSubview(textView)
        textView.delegate = self
    }

    func textViewDidBeginEditing(_ textView: UITextView) {
        if(!self.didTab) {
            textView.text = "\t\(textView.text)"
        }
        else {
            self.didTab = true
        } 
    }
}

PHP代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script>
   $(function() {
     $("#skill_input").autocomplete({
         source: "search.php",
         minLength: 1,
         select:function (event,ui) {
             event.onkeyup();
             $('#skill_input').value;

         }
     });
   });
</script>
<p>your skills:<textarea name="skill_input" id="skill_input" rows="10" ></textarea></p>

2 个答案:

答案 0 :(得分:0)

您好@Love Barot为了使建议显示第二个单词,您还需要具有该格式的数据

请检查以下小提琴,其中我包含“两个”作为数据,并且包含“两个三个三”作为数据,因此当我键入“ tw”时,它会显示两个作为建议,而当我键入“ th”时,它会显示建议“三”,因为存在该格式的数据。

 [JS fiddle link](https://jsfiddle.net/hp_issei/0gf294vy/2/) 

这就是为什么您没有得到第二个单词建议的原因。

答案 1 :(得分:0)

  1. 将autocomplete =“ off”添加到(或尝试在上添加) 元素;

  2. 添加隐藏为autocomplete =“ false”的第一个子级     表单的元素。