Javascript 验证使用表更改的值

Javascript 验证使用表更改的值,javascript,jquery,jeditable,Javascript,Jquery,Jeditable,我不太擅长javascript和ajax,所以我请求您的帮助。我使用Symfony2和Twig,我有一个字段,我用jediable更改它,但它的值应该是唯一的。因此,我在控制器操作中检查了这一点,但我无法使应用程序正常运行。我尝试了很多东西,最接近我想要的结果是: if (count($same) == 0) { // add to database } else { $response = new Response

我不太擅长javascript和ajax,所以我请求您的帮助。我使用Symfony2和Twig,我有一个字段,我用jediable更改它,但它的值应该是唯一的。因此,我在控制器操作中检查了这一点,但我无法使应用程序正常运行。我尝试了很多东西,最接近我想要的结果是:

   if (count($same) == 0) {
            // add to database
        } else { 
                $response = new Response();
                $response->setContent('<div class="alert alert-error">
            <button type="button" class="close" data-dismiss="alert">OK</button>
            <strong>This value is already used!</strong> Please choose another.
        </div>');
                $response->send();
与类“.edit”一起位于div中。当我单击它时,它将变为可编辑并包含整个块。我想要的是,当用户单击控制器中生成的警报,从表返回到输入字段时,在开始编辑之前,使用一个值作为类别的原始名称,或者使用空值

这是我的.js文件,但它不会使输入字段为空(但它会打印wokring):(

HTML

{{cat.name}}

有什么解决方案吗?

如果我理解,当有人用无效值单击“保存”按钮时,您的弹出错误会动态创建,这意味着弹出窗口在
$(文档)就绪时不存在。这就是此部分的原因:

$('.alert').on('click', function(){
    $("input[type=text]").val('');
});
如果你想让这个函数工作,你需要使用委托,因为你使用Jquery,这将非常简单

而不是
$('.alert')。在('click',function(){

您必须使用类似于
$('body')的内容。在('click','.alert',function(){

其中body是
.alert
的父元素,例如,如果您知道将在id为first_div的div中创建弹出窗口(类似于
),您将改为将
$('.#first_div')。打开('click','.alert',function(){


这意味着div将监听他体内的点击事件,因此他离弹出窗口越近,弹出窗口的效率就越高。

我认为这是缺失的

if (count($same) == 0) {
    // add to database
    // clear the content on form. 
    //$("input[type=text]").html('');//it should be html not **hmtl**
}
如果没有完成,请尝试回答


这应该可以.

如果它打印“正在工作”,这是一件好事,它意味着函数已经执行。$(“输入”)是一个非常模糊的选择器,您不可能给输入一个ID并这样称呼他:$(“#输入_ID”)我也看到您放了.html(“”),但这不起作用,您需要使用.val(“”)注意:实际上,这也将进入else部分..或者只需在按下OK按钮时调用
函数reset(){$(“输入[type=text]”).html('');}
。)
<span class="right-spacer"><strong id="{{cat.id}}"class="edit bla">{{ cat.name }}</strong>
$('.alert').on('click', function(){
    $("input[type=text]").val('');
});
if (count($same) == 0) {
    // add to database
    // clear the content on form. 
    //$("input[type=text]").html('');//it should be html not **hmtl**
}