我正在使用javascript格式化我的输入字段,但是没有用,我认为该错误是如何在我的小部件上调用函数的,我尝试了很多解决方案,但没有用。 我跟随这个例子:https://jsfiddle.net/alvinbunk/4bg6z1do/8/
这是我的输入字段:
<div>{{ form_widget(form.lien, {'attr':{'class': 'form-control' ,'placeholder' :'Format xxxx-xxxx-xxxx-xxxx' ,'id':'form_lien','maxlength' : '19','onkeypress':'keyPressLien(event,"form_lien");' }}) }}</div>
我的表单类型:
add('lien', TextType::class, [
'label' => 'lien',
'label_attr'=>array('id'=>'lien','style'=> 'text-align :left')
])
这是我的脚本:
function keyPressLien(e, id) {
var phone = document.getElementById(id);
if (e.key !== "Backspace") {
if (phone.value.length === 4) {
phone.value = phone.value + '-';
}
if (phone.value.length === 9) {
phone.value = phone.value + '-';
}
if (phone.value.length === 14) {
phone.value = phone.value + '-';
}
}
}
更新:
此代码有效:
'onkeypress':'keyPressLienHindex(event,"'~form.lien.vars.id~'");
答案 0 :(得分:0)
class Movies extends Component {
constructor(props) {
super(props);
this.state = { movies: getMovies(), }
}
handleDelete = (movie) => {
console.log(movie);
}
render() {
return (
<MoviesList movies={this.state.movies} onClick={() => this.handleDelete(movie)} />
);
}
}
应该是输入的ID?如果是这样,通常不是。要么使用
form_lien
它将使用javascript功能确定输入元素的ID-假设它具有一个ID或使用
'onkeypress':'keyPressLien(event, this.id);'
使用id,Symfony的Form组件将其分配给表单,通常很少称为'onkeypress':'keyPressLien(event,"'~form.lien.vars.id~'");'
,除非表单类型实际上称为form_[fieldname]
(这可能是代码味道)。 / p>
但是,为什么不提供元素本身呢?
FormType
和功能:
'onkeypress':'keyPressLien(event, this);'
附带说明:您的代码似乎假设电话号码的格式。这些假设可能是有缺陷的,但也许没关系。