2017-04-20 46 views
0

不触发我想实现一个简单的搜索框在我的应用程序搜索谷歌(因为如果你在google.com) 不过,好像没有什么改变,一旦我点击提交按钮。 Angular2是否阻止表单触发?表单搜索谷歌在Angular2

<form method="get" action="https://www.google.com/search"> 
    <input type="text" name="q" size="31" value=""> 
    <button type="submit" name="button">go</button> 
    </form> 
+0

如果你在浏览器中使用的开发工具,还有在控制台中的任何消息? – DeborahK

+0

@DeborahK感谢您的回复。不,控制台中没有错误。 –

+0

我只是将你的代码粘贴到我有的应用程序中,并且它按预期工作。它提出了谷歌搜索我输入的文本。 – DeborahK

回答

0

您可能已将FormsModule导入到您的模块中。

请使用ngNoForm在您的窗体上:<form ngNoForm>或删除FormsModule如果你不使用它。

默认情况下,除了那些标有ngNoForm属性的窗体外,所有窗体上的角度窗体均被激活。在这里阅读更多:https://angular.io/docs/ts/latest/guide/forms.html

ngNoForm从哪里来?

看看NgForm的文档:https://v2.angular.io/docs/ts/latest/api/forms/index/NgForm-directive.html。选择部分:form:not([ngNoForm]):not([formGroup])通知not([ngNoForm])

+0

我没有将FormsModule导入组件。 –

+0

不是你的组件,你**“模块” **声明该组件 –

+0

谢谢艾哈迈德!这工作! –

0

@DeboraK

这是我的解决方法: 我只是希望它是一种更简单的方法。一旦用户按下提交,我就会调用这个函数。

googleSearch() { 
    let str = this.googlestring.searchvalue; 
    let queryStr = str.split(' ').join('+'); 

    let googleStr = 'https://www.google.com/webhp#q='; 

    let completeQueryStr = googleStr.concat(queryStr); 

    console.log(this.googlestring.searchvalue); 
    window.location.href = completeQueryStr; 
    }