Tengo el siguiente código en un archivo .ascx como parte de un proyecto asp.net. ¿Cómo puedo escribir JavaScript para cambiar la fuente de la imagen a un gif?

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Steps123.ascx.cs" Inherits="SwintonTaxiWeb.UserControls.Steps123" %>

<div id="slickShow">

    <div class="<%=stepOneDivClass %>">
            <asp:ImageButton runat="server" ID="GetQuote" 
                CssClass="imgBut swapImage {src: '/images/Quote-Oval-button-(roll-over).png'}"
                ImageUrl="/images/Quote-Oval-button.png" AlternateText="Get Quote" TabIndex="1" />
    </div>
    <div id="rollOver">
        <img src="/images/Roll-over-to-view-steps-two-and-three.png" alt="Roll over to view steps 2 and 3" />
    </div>
    <div id="slideContainer">
        <div class="step-two">
            <asp:ImageButton runat="server" ID="GetCallback" 
                CssClass="swapImage {src: '/images/Call-back-button-(roll-over).png'}" 
                ImageUrl="/images/Call-back-button.png" AlternateText="Get Callback" Width="69" 
                Height="44" TabIndex="2" />
        </div>
        <div class="step-three">
            <fieldset>
                <asp:TextBox CssClass="postcode" ID="postcode" runat="server" TabIndex="0" /><asp:ImageButton runat="server" 
                    ID="go" CssClass="go" ImageUrl="/images/Go-button.png" AlternateText="Go" onclick="Go_Click" TabIndex="1" />
            </fieldset>      
        </div>
    </div>
</div>
0
brightmist.co.uk 12 oct. 2009 a las 18:07

3 respuestas

La mejor respuesta

Usando solo JavaScript puedes hacer:

var image = document.getElementById('ctl00_MainContent_tester_GetQuote');
image.src = [path to gif];

También puede usar jQuery para tomar el elemento a través de la clase (o algún otro selector si lo desea):

var image = $('.[ClassOfImage]').attr('src', '[NewPathToGif]');

Me encanta la jQuery.

3
JoshNaro 12 oct. 2009 a las 20:16

La forma más simple es así

 document.getElementById('ctl00_MainContent_tester_GetQuote').src = 'mygifsrc.gif';

Pero en este caso, esa identificación es una identificación generada por ASP.Net, y es posible que no pueda contar con que no cambie en usted. Mi forma normal de solucionar esto es encontrar un contenedor (como su div, pero no parte del control personalizado) y llamar a algo como getElementsByTagName() desde allí para encontrar el elemento que necesita. Pero como no compartiste tu html circundante, aún no puedo darte algo que sé que funcionará.

0
Joel Coehoorn 12 oct. 2009 a las 14:18

Hemos detectado un problema desconocido.

document.getElementById("ctl00_MainContent_tester_GetQuote").src = "myImage.gif";

Puede usar myControl.ClientId en lugar de "ctl00_MainContent_tester_GetQuote" si desea mantener las cosas dinámicas.

0
Fenton 12 oct. 2009 a las 14:16