2010-11-21 14 views
3

Ich habe über diese Website gesucht, kann keine Antwort auf mein Problem finden ..eine Schaltfläche mit jquery deaktivieren

Ich habe ein HTML-Formular, das mehrere Bilder hochladen kann. sieht aus wie dieses

<form enctype="multipart/form-data" method="post"> 
    <p> 
    <label for="image1">File number 1 to upload:</label> 
    <input id="image1" type="file" name="file[]" > 
    </p> 
     <p> 
    <label for="image1">File number 1 to upload:</label> 
    <input id="image1" type="file" name="file[]" > 
    </p> 
    //etc etc 
    </form> 

Was ich tun möchte, ist jede ‚wählen Datei‘ Taste deaktivieren, nachdem ein Bild ausgewählt wurde ..

Wenn dies nicht möglich ist, ist es eine Möglichkeit, Anzeige ein setzen können 'Erfolg' Nachricht nach jeder ausgewählt wurde? (Es können bis zu so viel wie 20-Upload-Tasten sein ..)

Dank

Antwort

1

Try this:

$(function(){ 
    $('#formID :file').change(function(){ 
    // if there is some value specified 
    if (this.value){ 
     $(this).attr('disabled', 'disabled'); 
    } 
    }); 
}); 

Der Code soll ein Dateifeld deaktivieren, nachdem eine Datei angegeben wurde. Obwohl ich nicht glaube, das ist eine gute Praxis, weil ein Benutzer auch eine andere Datei angeben möchten.

1

Verwenden Sie das change Ereignis:

$('input[type="file"]').change(function() { 
    if($(this).val().length) 
     $(this).attr('disabled','disabled'); 

}); 
1

Ich denke, das für alle Bildeingabetypen ein korrekter Zuhörer ist.

$(document).ready(function() { 
    //for all image inputs 
    $("input:file").change(function(){ 
    //check if an image is submitted 
    if(this.value){ 
     //disable element 
     $(this).attr("disabled", true); 
    } 
    }); 

}); 
+0

Außer, dass der Code den Typ 'file' anstelle von' image' verwendet. – user113716

+0

oops mein schlechtes - geänderte – liamfriel

2

Sie haben doppelte IDs "image1". Vielleicht ist dies nur in Frage, aber wenn es in Ihrem Code ist, beachten Sie, dass es nicht gültig ist.

Hier ist ein wenig schneller Weg:

$('input:file').change(function() { 
    this.disabled = !!this.value; 
}); 
0

Vielen Dank an alle für ihre Hilfe, aber keiner hat funktioniert! Jedes Mal, wenn ich ein Skript zum Deaktivieren einer Schaltfläche verwendete, wurde der Upload abgebrochen.

Ich brauchte wirklich nur einen visuellen Hinweis, dass eine Taste so angeklickt worden war, ich kam auf diese und es funktioniert eine Behandlung in meiner PHP-Seite.

$(".classclick$count").click(function(){ 

    $(".classclick$count").append("<span style=color:red;> < DONE </span>"); 

}); 
Verwandte Themen