2016-07-27 40 views
3

调用JavaScript函数删除OnclintClick事件将给我们确认按钮消息返回Yes点击时OK如何在JavaScript中限制追加字符串?

问题是,再次单击时,它会追加下一个字符串。

例如:Yes, Yes

的JavaScript

function Confirm() { 

    var confirm_value 

    confirm_value = document.createElement("INPUT"); 
    confirm_value.type = "hidden"; 
    confirm_value.name = "confirm_value"; 

    if (confirm("Are you sure want to delete supplier?")) { 
     confirm_value.value = "Yes"; 
    } 

    else { 
     confirm_value.value = "No"; 
    } 

    document.forms[0].appendChild(confirm_value); 
} 

说明

JavaScript的确认方法存储由用户动态创建隐藏字段即提供的输入如果OK被按下它将被存储的值Yes,如果按下Cancel它将存储No值,以便它可以将用户输入传递到服务器端代码。

然后它将允许按钮执行正常的回发并提高OnClick事件。

问题

怎么可能追加被限制在这?

+1

能否请你创建一个快速片段?因为我不明白你的问题,所以它会更容易;)thx –

+1

你应该首先检查输入是否已经存在,如果只是编辑值而不是添加新元素。 – Adjit

+0

对不起@ R.Foubert没有说清楚。我使用'''OnclintClick'''事件在删除时调用JavaScript函数。当我点击删除按钮后面的代码时,它会给我确认框消息,当我点击确定时,它照常返回'''是'''。但是,第二次点击确定后,它会追加字符串,例如:'是,是'''。我的问题是如何限制追加它? –

回答

2

只要给元素的ID,并检查ID下一次

function Confirm() { 

    var id = "confirm_value", 
     confirm_value = document.getElementById("confirm_value"); 

    if (!confirm_value) { 
     confirm_value = document.createElement("input"); 
     confirm_value.type = "hidden"; 
     confirm_value.name = id; 
     confirm_value.id = id; 

     document.forms[0].appendChild(confirm_value); 
    } 

    confirm_value.value = confirm("Are you sure want to delete supplier?") ? "Yes" : "No"; 
} 
1

最好的办法是设置一个布尔型标志,在您第一次设置该值后将设置为true

var yourBoolean = false; 
if (confirm("Are you sure want to delete supplier?")) { 
     yourBoolean = true; 
    if (yourBoolean === true) { 
     confirm_value.value = "Yes"; 
     } 
    }